Generated by Cython 0.29.21

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: model_cy.c

 0001: # cython: profile=True
+0002: import numpy as np
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 2, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0003: import pandas as pd
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_pandas, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_pd, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0004: import collections as cl
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_collections, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_cl, __pyx_t_1) < 0) __PYX_ERR(0, 4, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0005: import sys
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_sys, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_sys, __pyx_t_1) < 0) __PYX_ERR(0, 5, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0006: import calendar
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_calendar, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_calendar, __pyx_t_1) < 0) __PYX_ERR(0, 6, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0007: import json
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_json, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_json, __pyx_t_1) < 0) __PYX_ERR(0, 7, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0008: import matplotlib.pyplot as plt
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s__83);
  __Pyx_GIVEREF(__pyx_n_s__83);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s__83);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_matplotlib_pyplot, __pyx_t_1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_plt, __pyx_t_2) < 0) __PYX_ERR(0, 8, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0009: from datetime import datetime
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s_datetime);
  __Pyx_GIVEREF(__pyx_n_s_datetime);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s_datetime);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_datetime, __pyx_t_2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_ImportFrom(__pyx_t_1, __pyx_n_s_datetime); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_datetime, __pyx_t_2) < 0) __PYX_ERR(0, 9, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0010: from .reservoir_cy cimport Reservoir
 0011: from .delta_cy cimport Delta
 0012: from .district_cy cimport District
 0013: from .private_cy cimport Private
 0014: from .contract_cy cimport Contract
 0015: from .canal_cy cimport Canal
 0016: from .waterbank_cy cimport Waterbank
+0017: from .scenario import Scenario
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_Scenario);
  __Pyx_GIVEREF(__pyx_n_s_Scenario);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_Scenario);
  __pyx_t_2 = __Pyx_Import(__pyx_n_s_scenario, __pyx_t_1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_2, __pyx_n_s_Scenario); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 17, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Scenario, __pyx_t_1) < 0) __PYX_ERR(0, 17, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0018: from .util import *
  __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_n_s__83);
  __Pyx_GIVEREF(__pyx_n_s__83);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_n_s__83);
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_util, __pyx_t_2, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 18, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_import_star(__pyx_t_1) < 0) __PYX_ERR(0, 18, __pyx_L1_error);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0019: 
 0020: 
+0021: class Model():
  __pyx_t_1 = __Pyx_Py3MetaclassPrepare((PyObject *) NULL, __pyx_empty_tuple, __pyx_n_s_Model, __pyx_n_s_Model, (PyObject *) NULL, __pyx_n_s_calfews_src_cy_model_cy, (PyObject *) NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
/* … */
  __pyx_t_2 = __Pyx_Py3ClassCreate(((PyObject*)&__Pyx_DefaultClassType), __pyx_n_s_Model, __pyx_empty_tuple, __pyx_t_1, NULL, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_Model, __pyx_t_2) < 0) __PYX_ERR(0, 21, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0022:   # __slots__ = ["df", "model_mode", "demand_type", "index", "T", "day_year", "day_month", "month", "year", "starting_year",
 0023:   #              "ending_year", "number_years", "dowy", "water_year", "df_short", "T_short", "short_day_year",
 0024:   #              "short_day_month", "short_month", "short_year", "short_starting_year", "short_ending_year",
 0025:   #              "short_number_years", "short_dowy", "short_water_year", "leap", "year_list", "days_in_month",
 0026:   #              "dowy_eom", "non_leap_year", "use_sensitivity", "sensitivity_sample_number", "sensitivity_sample_names",
 0027:   #              "sensitivity_sample", "sensitivity_factors", "shasta", "oroville", "folsom", "yuba", "newmelones",
 0028:   #              "donpedro", "exchequer", "millerton", "sanluisstate", "sanluisfederal", "isabella", "success", 
 0029:   #              "kaweah", "pineflat", "berrenda", "belridge", "buenavista", "cawelo", "henrymiller",
 0030:   #              "ID4", "kerndelta", "losthills", "rosedale", "semitropic", "tehachapi", "tejon", "westkern", "wheeler", 
 0031:   #              "kcwa", "bakersfield", "northkern", "arvin", "delano", "pixley", "exeter", "kerntulare", "lindmore", 
 0032:   #              "lindsay", "lowertule", "porterville", "saucelito", "shaffer", "sosanjoaquin", "teapot", "terra", "tulare", 
 0033:   #              "fresno", "fresnoid", "socal", "southbay", "centralcoast", "dudleyridge", "tularelake", "westlands",
 0034:   #              "chowchilla", "maderairr", "othertule", "otherkaweah", "otherfriant", "othercvp", "otherexchange", 
 0035:   #              "othercrossvalley", "otherswp", "consolidated", "alta", "krwa", "kaweahdelta", "sanluiswater", "panoche", 
 0036:   #              "delpuerto", "wonderful", "metropolitan", "castaic", "coachella", "friant1", "friant2", "swpdelta", 
 0037:   #              "cvpdelta", "cvpexchange", "crossvalley", "kernriver", "tuleriver", "kaweahriver", "kingsriver",
 0038:   #              "fkc", "madera", "xvc", "calaqueduct", "kwbcanal", "aecanal", "kerncanal", "calloway", "lerdo", 
 0039:   #              "beardsley", "kernriverchannel", "kaweahriverchannel", "tuleriverchannel", "kingsriverchannel", "delta", 
 0040:   #              "stockdale", "kernriverbed", "poso", "pioneer", "kwb", "berrendawb", "b2800", "wkwb", "irvineranch", 
 0041:   #              "northkernwb", 'short_index', 'first_d_of_month', 'short_days_in_month', 'delta_gains_regression', 
 0042:   #              'running_fnf', 'reservoir_list', 'city_list', 'swp_allocation', 'canal_reservoir', 'canal_contract', 
 0043:   #              'annual_SWP', 'hro_pumping', 'district_list', 'forecastSRI', 'contract_list', 'waterbank_list', 
 0044:   #              'canal_priority', 'canal_list', 'observed_trp', 'sanluis', 'reservoir_contract', 'cvp_allocation', 
 0045:   #              'contract_turnouts', 'contract_reservoir', 'trp_pumping', 'reservoir_canal', 'canal_district',
 0046:   #              'aewb', 'pumping_turnback', 'max_tax_free', 'observed_hro', 'district_keys', 'private_list',
 0047:   #              'annual_CVP', 'ytd_pump_hro', 'observed_hro_pred', 'ytd_pump_trp', 'contract_keys', 'urban_list', 
 0048:   #              'omr_rule_start', 'leiu_list', 'allocation_losses', 'district_keys_len', 'canal_district_len']
 0049: 
+0050:   def __init__(self, input_data_file, expected_release_datafile, model_mode, demand_type, sensitivity_sample_number=-1, sensitivity_sample_names=[], sensitivity_sample=[], sensitivity_factors = None):
static PyObject *__pyx_pf_14calfews_src_cy_8model_cy___defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_TraceCall("__defaults__", __pyx_f[0], 50, 0, __PYX_ERR(0, 50, __pyx_L1_error));
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(((PyObject *)__pyx_int_neg_1));
  __Pyx_GIVEREF(((PyObject *)__pyx_int_neg_1));
  PyTuple_SET_ITEM(__pyx_t_1, 0, ((PyObject *)__pyx_int_neg_1));
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample_names);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample_names);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample_names);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self)->__pyx_arg_sensitivity_sample);
  __Pyx_INCREF(((PyObject *)Py_None));
  __Pyx_GIVEREF(((PyObject *)Py_None));
  PyTuple_SET_ITEM(__pyx_t_1, 3, ((PyObject *)Py_None));
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_2, 1, Py_None);
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_2;
  __pyx_t_2 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_1__init__ = {"__init__", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_1__init__, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_1__init__(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_input_data_file = 0;
  PyObject *__pyx_v_expected_release_datafile = 0;
  PyObject *__pyx_v_model_mode = 0;
  PyObject *__pyx_v_demand_type = 0;
  PyObject *__pyx_v_sensitivity_sample_number = 0;
  PyObject *__pyx_v_sensitivity_sample_names = 0;
  PyObject *__pyx_v_sensitivity_sample = 0;
  PyObject *__pyx_v_sensitivity_factors = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__ (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_input_data_file,&__pyx_n_s_expected_release_datafile,&__pyx_n_s_model_mode,&__pyx_n_s_demand_type,&__pyx_n_s_sensitivity_sample_number,&__pyx_n_s_sensitivity_sample_names,&__pyx_n_s_sensitivity_sample,&__pyx_n_s_sensitivity_factors,0};
    PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
    __pyx_defaults *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_self);
    values[5] = ((PyObject *)((PyObject *)__pyx_int_neg_1));
    values[6] = __pyx_dynamic_args->__pyx_arg_sensitivity_sample_names;
    values[7] = __pyx_dynamic_args->__pyx_arg_sensitivity_sample;
    values[8] = ((PyObject *)((PyObject *)Py_None));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_input_data_file)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 5, 9, 1); __PYX_ERR(0, 50, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_expected_release_datafile)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 5, 9, 2); __PYX_ERR(0, 50, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_model_mode)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 5, 9, 3); __PYX_ERR(0, 50, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_demand_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__init__", 0, 5, 9, 4); __PYX_ERR(0, 50, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample_number);
          if (value) { values[5] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample_names);
          if (value) { values[6] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_sample);
          if (value) { values[7] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sensitivity_factors);
          if (value) { values[8] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__init__") < 0)) __PYX_ERR(0, 50, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_input_data_file = values[1];
    __pyx_v_expected_release_datafile = values[2];
    __pyx_v_model_mode = values[3];
    __pyx_v_demand_type = values[4];
    __pyx_v_sensitivity_sample_number = values[5];
    __pyx_v_sensitivity_sample_names = values[6];
    __pyx_v_sensitivity_sample = values[7];
    __pyx_v_sensitivity_factors = values[8];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__init__", 0, 5, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 50, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model___init__(__pyx_self, __pyx_v_self, __pyx_v_input_data_file, __pyx_v_expected_release_datafile, __pyx_v_model_mode, __pyx_v_demand_type, __pyx_v_sensitivity_sample_number, __pyx_v_sensitivity_sample_names, __pyx_v_sensitivity_sample, __pyx_v_sensitivity_factors);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model___init__(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_input_data_file, PyObject *__pyx_v_expected_release_datafile, PyObject *__pyx_v_model_mode, PyObject *__pyx_v_demand_type, PyObject *__pyx_v_sensitivity_sample_number, PyObject *__pyx_v_sensitivity_sample_names, PyObject *__pyx_v_sensitivity_sample, PyObject *__pyx_v_sensitivity_factors) {
  PyObject *__pyx_v_short_year_list = NULL;
  PyObject *__pyx_v_short_leap = NULL;
  PyObject *__pyx_v_year_list = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj_)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__init__", 0);
  __Pyx_TraceCall("__init__", __pyx_f[0], 50, 0, __PYX_ERR(0, 50, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.__init__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_short_year_list);
  __Pyx_XDECREF(__pyx_v_short_leap);
  __Pyx_XDECREF(__pyx_v_year_list);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__84 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_input_data_file, __pyx_n_s_expected_release_datafile, __pyx_n_s_model_mode, __pyx_n_s_demand_type, __pyx_n_s_sensitivity_sample_number, __pyx_n_s_sensitivity_sample_names, __pyx_n_s_sensitivity_sample, __pyx_n_s_sensitivity_factors, __pyx_n_s_short_year_list, __pyx_n_s_short_leap, __pyx_n_s_year_list); if (unlikely(!__pyx_tuple__84)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__84);
  __Pyx_GIVEREF(__pyx_tuple__84);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_1__init__, 0, __pyx_n_s_Model___init, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj_)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_2, sizeof(__pyx_defaults), 2)) __PYX_ERR(0, 50, __pyx_L1_error)
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_2)->__pyx_arg_sensitivity_sample_names = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_Defaults(__pyx_defaults, __pyx_t_2)->__pyx_arg_sensitivity_sample = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_2, __pyx_pf_14calfews_src_cy_8model_cy___defaults__);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_init, __pyx_t_2) < 0) __PYX_ERR(0, 50, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj_ = (PyObject*)__Pyx_PyCode_New(9, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__84, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_init, 50, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj_)) __PYX_ERR(0, 50, __pyx_L1_error)
 0051:     ##Set model dataset & index length
+0052:     self.df = pd.read_csv(input_data_file, index_col=0, parse_dates=True)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_input_data_file);
  __Pyx_GIVEREF(__pyx_v_input_data_file);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_input_data_file);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 52, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 52, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_df, __pyx_t_4) < 0) __PYX_ERR(0, 52, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0053:     self.model_mode = model_mode
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_model_mode, __pyx_v_model_mode) < 0) __PYX_ERR(0, 53, __pyx_L1_error)
+0054:     self.demand_type = demand_type
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_demand_type, __pyx_v_demand_type) < 0) __PYX_ERR(0, 54, __pyx_L1_error)
+0055:     self.index = self.df.index
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_index, __pyx_t_3) < 0) __PYX_ERR(0, 55, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0056:     self.T = len(self.df)
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_T, __pyx_t_3) < 0) __PYX_ERR(0, 56, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0057:     self.day_year = self.index.dayofyear
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_day_year, __pyx_t_4) < 0) __PYX_ERR(0, 57, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0058:     self.day_month = self.index.day
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_day_month, __pyx_t_3) < 0) __PYX_ERR(0, 58, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0059:     self.month = self.index.month
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_month); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_month, __pyx_t_4) < 0) __PYX_ERR(0, 59, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0060:     self.year = self.index.year
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_year, __pyx_t_3) < 0) __PYX_ERR(0, 60, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0061:     self.starting_year = self.index.year[0]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_starting_year, __pyx_t_3) < 0) __PYX_ERR(0, 61, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0062:     self.ending_year = self.index.year[-1]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ending_year, __pyx_t_3) < 0) __PYX_ERR(0, 62, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0063:     self.number_years = self.ending_year - self.starting_year
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ending_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_number_years, __pyx_t_1) < 0) __PYX_ERR(0, 63, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0064:     self.dowy = water_day(self.day_year, self.year)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_water_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_3, __pyx_t_2};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_2);
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 64, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dowy, __pyx_t_1) < 0) __PYX_ERR(0, 64, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0065:     self.water_year = water_year(self.month, self.year, self.starting_year)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_water_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_month); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_8, __pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_8, __pyx_t_2, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_9 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_7, __pyx_t_3);
    __pyx_t_8 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 65, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_water_year, __pyx_t_1) < 0) __PYX_ERR(0, 65, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0066:     self.df_short = pd.read_csv(expected_release_datafile, index_col=0, parse_dates=True)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_expected_release_datafile);
  __Pyx_GIVEREF(__pyx_v_expected_release_datafile);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_expected_release_datafile);
  __pyx_t_9 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_df_short, __pyx_t_3) < 0) __PYX_ERR(0, 66, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0067:     self.T_short = len(self.df_short)
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_T_short, __pyx_t_3) < 0) __PYX_ERR(0, 67, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0068:     self.short_day_year = self.df_short.index.dayofyear
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_day_year, __pyx_t_3) < 0) __PYX_ERR(0, 68, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0069:     self.short_day_month = self.df_short.index.day
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_day_month, __pyx_t_3) < 0) __PYX_ERR(0, 69, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0070:     self.short_month = self.df_short.index.month
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_month, __pyx_t_3) < 0) __PYX_ERR(0, 70, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0071:     self.short_year = self.df_short.index.year
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_index); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_year, __pyx_t_3) < 0) __PYX_ERR(0, 71, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0072:     self.short_starting_year = self.short_year[0]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_starting_year, __pyx_t_9) < 0) __PYX_ERR(0, 72, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0073:     self.short_ending_year = self.short_year[-1]
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_ending_year, __pyx_t_3) < 0) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0074:     self.short_number_years = self.short_ending_year - self.short_starting_year
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_ending_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_starting_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_number_years, __pyx_t_1) < 0) __PYX_ERR(0, 74, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0075:     self.short_dowy = water_day(self.short_day_year, self.short_year)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_water_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_day_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 75, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_dowy, __pyx_t_1) < 0) __PYX_ERR(0, 75, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0076:     self.short_water_year = water_year(self.short_month, self.short_year, self.short_starting_year)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_water_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_month); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_starting_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_t_8, __pyx_t_4, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_7, __pyx_t_3);
    __pyx_t_8 = 0;
    __pyx_t_4 = 0;
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 76, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_water_year, __pyx_t_1) < 0) __PYX_ERR(0, 76, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0077:     short_year_list = np.arange(min(self.short_year), max(self.short_year)+2)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_arange); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 77, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_3, __pyx_t_9};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_9);
    __pyx_t_3 = 0;
    __pyx_t_9 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 77, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_short_year_list = __pyx_t_1;
  __pyx_t_1 = 0;
+0078:     short_leap = leap(short_year_list)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_leap); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_8, __pyx_v_short_year_list) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_short_year_list);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_short_leap = __pyx_t_1;
  __pyx_t_1 = 0;
+0079:     self.short_days_in_month = days_in_month(short_year_list, short_leap)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_short_year_list, __pyx_v_short_leap};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_short_year_list, __pyx_v_short_leap};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_9 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_v_short_year_list);
    __Pyx_GIVEREF(__pyx_v_short_year_list);
    PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_v_short_year_list);
    __Pyx_INCREF(__pyx_v_short_leap);
    __Pyx_GIVEREF(__pyx_v_short_leap);
    PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_v_short_leap);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 79, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_short_days_in_month, __pyx_t_1) < 0) __PYX_ERR(0, 79, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0080: 
+0081:     self.leap = leap(np.arange(min(self.year), max(self.year) + 2))
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_leap); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_arange); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_8};
    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_t_4, __pyx_t_8};
    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_t_8);
    __pyx_t_4 = 0;
    __pyx_t_8 = 0;
    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_10, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 81, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_3, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_leap, __pyx_t_1) < 0) __PYX_ERR(0, 81, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0082:     year_list = np.arange(min(self.year), max(self.year) + 2)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_arange); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_10 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_10, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 82, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_6};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_10, __pyx_t_3, __pyx_t_6};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  } else
  #endif
  {
    __pyx_t_8 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__pyx_t_10) {
      __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_10); __pyx_t_10 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_7, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_7, __pyx_t_6);
    __pyx_t_3 = 0;
    __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 82, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_year_list = __pyx_t_1;
  __pyx_t_1 = 0;
+0083:     self.days_in_month = days_in_month(year_list, self.leap)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leap); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_year_list, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_year_list, __pyx_t_8};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_INCREF(__pyx_v_year_list);
    __Pyx_GIVEREF(__pyx_v_year_list);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_7, __pyx_v_year_list);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_7, __pyx_t_8);
    __pyx_t_8 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 83, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month, __pyx_t_1) < 0) __PYX_ERR(0, 83, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0084:     self.dowy_eom = dowy_eom(year_list, self.leap)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_year_list, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_year_list, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_v_year_list);
    __Pyx_GIVEREF(__pyx_v_year_list);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_7, __pyx_v_year_list);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_7, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 84, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom, __pyx_t_1) < 0) __PYX_ERR(0, 84, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0085:     self.non_leap_year = first_non_leap_year(self.dowy_eom)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_first_non_leap_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_3, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_6);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year, __pyx_t_1) < 0) __PYX_ERR(0, 85, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0086:     self.first_d_of_month = first_d_of_month(self.dowy_eom, self.days_in_month)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_first_d_of_month); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_t_6, __pyx_t_3};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_10 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_7, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_7, __pyx_t_3);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_10, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 86, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_first_d_of_month, __pyx_t_1) < 0) __PYX_ERR(0, 86, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0087: 
+0088:     if sensitivity_sample_number == -1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_sensitivity_sample_number, __pyx_int_neg_1, -1L, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 88, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_11) {
/* … */
    goto __pyx_L3;
  }
+0089:       self.use_sensitivity = False
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity, Py_False) < 0) __PYX_ERR(0, 89, __pyx_L1_error)
 0090:     else:
+0091:       self.use_sensitivity = True
  /*else*/ {
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity, Py_True) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
+0092:       self.sensitivity_sample_number = sensitivity_sample_number
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_sample_number, __pyx_v_sensitivity_sample_number) < 0) __PYX_ERR(0, 92, __pyx_L1_error)
+0093:       self.sensitivity_sample_names = sensitivity_sample_names
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_sample_names, __pyx_v_sensitivity_sample_names) < 0) __PYX_ERR(0, 93, __pyx_L1_error)
+0094:       self.sensitivity_sample = sensitivity_sample
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_sample, __pyx_v_sensitivity_sample) < 0) __PYX_ERR(0, 94, __pyx_L1_error)
+0095:       self.sensitivity_factors = sensitivity_factors
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors, __pyx_v_sensitivity_factors) < 0) __PYX_ERR(0, 95, __pyx_L1_error)
+0096:       self.set_sensitivity_factors()
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_1 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 96, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
 0097: 
 0098: 
+0099:   def object_equals(self, other, return_full=False):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_3object_equals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_3object_equals = {"object_equals", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_3object_equals, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_3object_equals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_other = 0;
  PyObject *__pyx_v_return_full = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("object_equals (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_other,&__pyx_n_s_return_full,0};
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)((PyObject *)Py_False));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_other)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("object_equals", 0, 2, 3, 1); __PYX_ERR(0, 99, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_return_full);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "object_equals") < 0)) __PYX_ERR(0, 99, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_other = values[1];
    __pyx_v_return_full = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("object_equals", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 99, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.object_equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_2object_equals(__pyx_self, __pyx_v_self, __pyx_v_other, __pyx_v_return_full);

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_2object_equals(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_other, PyObject *__pyx_v_return_full) {
  PyObject *__pyx_v_equality = NULL;
  PyObject *__pyx_v_differences = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_j = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__2)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("object_equals", 0);
  __Pyx_TraceCall("object_equals", __pyx_f[0], 99, 0, __PYX_ERR(0, 99, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.object_equals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_equality);
  __Pyx_XDECREF(__pyx_v_differences);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_j);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__85 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_other, __pyx_n_s_return_full, __pyx_n_s_equality, __pyx_n_s_differences, __pyx_n_s_i, __pyx_n_s_j); if (unlikely(!__pyx_tuple__85)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__85);
  __Pyx_GIVEREF(__pyx_tuple__85);
  __pyx_codeobj__2 = (PyObject*)__Pyx_PyCode_New(3, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__85, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_object_equals, 99, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__2)) __PYX_ERR(0, 99, __pyx_L1_error)
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_3object_equals, 0, __pyx_n_s_Model_object_equals, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__2)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__86);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_object_equals, __pyx_t_2) < 0) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_tuple__86 = PyTuple_Pack(1, ((PyObject *)Py_False)); if (unlikely(!__pyx_tuple__86)) __PYX_ERR(0, 99, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__86);
  __Pyx_GIVEREF(__pyx_tuple__86);
 0100:     ##This function compares two instances of a model object, returns True if all attributes are identical.
+0101:     equality = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_equality = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+0102:     if (self.__dict__.keys() != other.__dict__.keys()):
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_5) {
/* … */
  }
+0103:       return ('Different Attributes')
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_kp_u_Different_Attributes);
    __pyx_r = __pyx_kp_u_Different_Attributes;
    goto __pyx_L0;
 0104:     else:
+0105:       differences = 0
  /*else*/ {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_differences = __pyx_int_0;
+0106:       for i in self.__dict__.keys():
    __pyx_t_6 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(__pyx_t_3 == Py_None)) {
      PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
      __PYX_ERR(0, 106, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_dict_iterator(__pyx_t_3, 0, __pyx_n_s_keys, (&__pyx_t_7), (&__pyx_t_8)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 106, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF(__pyx_t_4);
    __pyx_t_4 = __pyx_t_1;
    __pyx_t_1 = 0;
    while (1) {
      __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_4, __pyx_t_7, &__pyx_t_6, &__pyx_t_1, NULL, NULL, __pyx_t_8);
      if (unlikely(__pyx_t_9 == 0)) break;
      if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 106, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_1);
      __pyx_t_1 = 0;
+0107:         if ((type(self.__getattribute__(i)) is Canal) | (type(self.__getattribute__(i)) is Contract) |
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_5 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 107, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_10 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
      if (__pyx_t_15) {
/* … */
        goto __pyx_L6;
      }
+0108:                 (type(self.__getattribute__(i)) is District) | (type(self.__getattribute__(i)) is Private) |
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_11 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
/* … */
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 108, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_12 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_10private_cy_Private));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0109:                 (type(self.__getattribute__(i)) is Reservoir) | (type(self.__getattribute__(i)) is Waterbank)):
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_13 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
/* … */
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_14 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_15 = ((((((__pyx_t_5 | __pyx_t_10) | __pyx_t_11) | __pyx_t_12) | __pyx_t_13) | __pyx_t_14) != 0);
+0110:           equality[i] = self.__getattribute__(i).object_equals(other.__getattribute__(i))
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_16 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_16)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_16);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_object_equals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_17 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
          __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
          if (likely(__pyx_t_17)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
            __Pyx_INCREF(__pyx_t_17);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_16, function);
          }
        }
        __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
        __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_16)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_16);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_1 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3);
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 110, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0111:         elif type(self.__getattribute__(i)) is dict:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 111, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_15 = (((PyObject *)Py_TYPE(__pyx_t_1)) == ((PyObject *)(&PyDict_Type)));
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_14 = (__pyx_t_15 != 0);
      if (__pyx_t_14) {
/* … */
        goto __pyx_L6;
      }
+0112:           equality[i] = True
        if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_True) < 0)) __PYX_ERR(0, 112, __pyx_L1_error)
+0113:           for j in self.__getattribute__(i).keys():
        __pyx_t_18 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_16 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_16)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_16);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_2 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_i);
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(__pyx_t_2 == Py_None)) {
          PyErr_Format(PyExc_AttributeError, "'NoneType' object has no attribute '%.30s'", "keys");
          __PYX_ERR(0, 113, __pyx_L1_error)
        }
        __pyx_t_3 = __Pyx_dict_iterator(__pyx_t_2, 0, __pyx_n_s_keys, (&__pyx_t_19), (&__pyx_t_9)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 113, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF(__pyx_t_1);
        __pyx_t_1 = __pyx_t_3;
        __pyx_t_3 = 0;
        while (1) {
          __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_19, &__pyx_t_18, &__pyx_t_3, NULL, NULL, __pyx_t_9);
          if (unlikely(__pyx_t_20 == 0)) break;
          if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_XDECREF_SET(__pyx_v_j, __pyx_t_3);
          __pyx_t_3 = 0;
+0114:             if (type(self.__getattribute__(i)[j] == other.__getattribute__(i)[j]) is bool):
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_16 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_16)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_16);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_3 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_16, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
            __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
            if (likely(__pyx_t_17)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
              __Pyx_INCREF(__pyx_t_17);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_16, function);
            }
          }
          __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 114, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_14 = (((PyObject *)Py_TYPE(__pyx_t_3)) == ((PyObject*)&PyBool_Type));
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_15 = (__pyx_t_14 != 0);
          if (__pyx_t_15) {
/* … */
            goto __pyx_L9;
          }
+0115:               if ((self.__getattribute__(i)[j] == other.__getattribute__(i)[j]) == False):
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_2 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
              __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_16);
              if (likely(__pyx_t_2)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                __Pyx_INCREF(__pyx_t_2);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_16, function);
              }
            }
            __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
            __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_17 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_17)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_17);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
              }
            }
            __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
            __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 115, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (__pyx_t_15) {
/* … */
            }
+0116:                 equality[i] = False
              if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_False) < 0)) __PYX_ERR(0, 116, __pyx_L1_error)
 0117:             else:
+0118:               if ((self.__getattribute__(i)[j] == other.__getattribute__(i)[j]).all() == False):
          /*else*/ {
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_17 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
              __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
              if (likely(__pyx_t_17)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                __Pyx_INCREF(__pyx_t_17);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_16, function);
              }
            }
            __pyx_t_3 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_17, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
            __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_21 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
              __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_17);
              if (likely(__pyx_t_21)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                __Pyx_INCREF(__pyx_t_21);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_17, function);
              }
            }
            __pyx_t_3 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_21, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i);
            __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_j); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_16, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_all); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = NULL;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
              __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_17);
              if (likely(__pyx_t_3)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_17, function);
              }
            }
            __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_17);
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = PyObject_RichCompare(__pyx_t_2, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 118, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (__pyx_t_15) {
/* … */
            }
          }
          __pyx_L9:;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0119:                 equality[i] = False
              if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, Py_False) < 0)) __PYX_ERR(0, 119, __pyx_L1_error)
 0120:         else:
+0121:           if (type(self.__getattribute__(i) == other.__getattribute__(i)) is bool):
      /*else*/ {
        __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_17);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_17, function);
          }
        }
        __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_2, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_17 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_i);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 121, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __pyx_t_15 = (((PyObject *)Py_TYPE(__pyx_t_2)) == ((PyObject*)&PyBool_Type));
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_14 = (__pyx_t_15 != 0);
        if (__pyx_t_14) {
/* … */
          goto __pyx_L12;
        }
+0122:             equality[i] = (self.__getattribute__(i) == other.__getattribute__(i))
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_1 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
            }
          }
          __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_1, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_17 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_17, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 122, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0123:           else:
+0124:             equality[i] = np.array(self.__getattribute__(i) == other.__getattribute__(i)).all()
        /*else*/ {
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_array); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_21 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_16);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_16, function);
            }
          }
          __pyx_t_2 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_16, __pyx_t_21, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_other, __pyx_n_s_getattribute); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_22 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_22)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_22);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
            }
          }
          __pyx_t_16 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_22, __pyx_v_i) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_i);
          __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
          if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyObject_RichCompare(__pyx_t_2, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_16)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_16);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_17 = (__pyx_t_16) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_16, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_21);
          __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_all); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_17)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_17);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_1 = (__pyx_t_17) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_17) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_equality, __pyx_v_i, __pyx_t_1) < 0)) __PYX_ERR(0, 124, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
        __pyx_L12:;
      }
      __pyx_L6:;
+0125:         if (equality[i] == False):
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_equality, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 125, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, Py_False, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 125, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 125, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_14) {
/* … */
      }
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
+0126:           differences += 1
        __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_differences, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF_SET(__pyx_v_differences, __pyx_t_3);
        __pyx_t_3 = 0;
+0127:     if return_full:
  __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_v_return_full); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 127, __pyx_L1_error)
  if (__pyx_t_14) {
/* … */
  }
+0128:       return (equality)
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_equality);
    __pyx_r = __pyx_v_equality;
    goto __pyx_L0;
 0129:     else:
+0130:       return (differences == 0)
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_differences, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    goto __pyx_L0;
  }
 0131: 
 0132: 
 0133: 
 0134: 
 0135:   #####################################################################################################################
 0136: #############################     Object Creation     ###############################################################
 0137: #####################################################################################################################
+0138:   def northern_initialization_routine(self, startTime):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_5northern_initialization_routine(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_5northern_initialization_routine = {"northern_initialization_routine", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_5northern_initialization_routine, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_5northern_initialization_routine(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_startTime = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("northern_initialization_routine (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_startTime,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startTime)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("northern_initialization_routine", 1, 2, 2, 1); __PYX_ERR(0, 138, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "northern_initialization_routine") < 0)) __PYX_ERR(0, 138, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_startTime = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("northern_initialization_routine", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 138, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.northern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_4northern_initialization_routine(__pyx_self, __pyx_v_self, __pyx_v_startTime);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_4northern_initialization_routine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_startTime) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__3)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("northern_initialization_routine", 0);
  __Pyx_TraceCall("northern_initialization_routine", __pyx_f[0], 138, 0, __PYX_ERR(0, 138, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.northern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__87 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_startTime); if (unlikely(!__pyx_tuple__87)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__87);
  __Pyx_GIVEREF(__pyx_tuple__87);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_5northern_initialization_routine, 0, __pyx_n_s_Model_northern_initialization_ro, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__3)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_northern_initialization_routine, __pyx_t_2) < 0) __PYX_ERR(0, 138, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__3 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__87, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_northern_initialization_routine, 138, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__3)) __PYX_ERR(0, 138, __pyx_L1_error)
 0139:     ######################################################################################
 0140:     ######################################################################################
 0141:     # preprocessing for the northern system
 0142:     ######################################################################################
 0143:     # initialize reservoirs
 0144:     # generates - regression coefficients & standard deviations for flow predictions (fnf & inf)
 0145:     # (at each reservoir)
 0146:     # self.res.rainflood_fnf; self.res.snowflood_fnf
 0147:     # self.res.rainflood_inf; self.res.snowflood_inf; self.res.baseline_inf
 0148:     # self.res.rainfnf_stds; self.res.snowfnf_stds
 0149:     # self.res.raininf_stds; self.res.snowinf_stds; self.res.baseinf_stds
 0150:     # self.res.flow_shape - monthly fractions of total period flow
+0151:     self.initialize_northern_res()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_northern_res); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 151, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0152:     # print('Initialize Northern Reservoirs, time ', datetime.now() - startTime)
 0153:     # initialize delta rules, calcluate expected environmental releases at each reservoir
 0154:     # generates - cumulative environmental/delta releases remaining (at each reservoir)
 0155:     # self.res.cum_min_release; self.res.aug_sept_min_release; self.res.oct_nov_min_release
+0156:     self.initialize_delta_ops()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_delta_ops); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 156, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0157:     # print('Initialize Delta Ops, time ', datetime.now() - startTime)
 0158: 
 0159:     ######
 0160:     # calculate projection-based flow year indicies using flow & snow inputs
 0161:     ##note: these values are pre-processed, but represent no 'foresight' WYT & WYI index use
 0162:     # snow-based projections to forecast flow, calculate running WY index & WYT
 0163:     # generates:
 0164:     # self.delta.forecastSJI (self.T x 1) - forecasts for san joaquin river index
 0165:     # self.delta.forecastSRI (self.T x 1) - forecasts for sacramento river index
+0166:     self.find_running_WYI()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_running_WYI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0167:     # print('Find Water Year Indicies, time ', datetime.now() - startTime)
 0168: 
 0169:     ######
 0170:     # calculate expected 'unstored' pumping at the delta (for predictions into San Luis)
 0171:     # this generates:
 0172:     # self.delta_gains_regression (365x2) - linear coeffecicients for predicting total unstored pumping, oct-mar, based on ytd full natural flow
 0173:     # self.delta_gains_regression2 (365x2) - linear coeffecicients for predicting total unstored pumping, apr-jul, based on ytd full natural flow
 0174:     # self.month_averages (12x1) - expected fraction of unstored pumping to come in each month (fraction is for total period flow, so 0.25 in feb is 25% of total oct-mar unstored flow)
+0175:     self.predict_delta_gains()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_predict_delta_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0176:     # print('Find Delta Gains, time ', datetime.now() - startTime)
+0177:     if self.model_mode == 'validation':
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 177, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L3;
  }
+0178:       self.set_regulations_historical_north()
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_regulations_historical_north); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0179:     else:
+0180:       self.set_regulations_current_north()
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_regulations_current_north); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 180, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
 0181: 
+0182:     return self.delta.omr_rule_start, self.delta.max_tax_free
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_omr_rule_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_max_tax_free); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 182, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 0183:     ######################################################################################
 0184: 
+0185:   def southern_initialization_routine(self, startTime, scenario='baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_7southern_initialization_routine(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_7southern_initialization_routine = {"southern_initialization_routine", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_7southern_initialization_routine, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_7southern_initialization_routine(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_startTime = 0;
  PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("southern_initialization_routine (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_startTime,&__pyx_n_s_scenario,0};
    PyObject* values[3] = {0,0,0};
    values[2] = ((PyObject *)((PyObject*)__pyx_n_u_baseline));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_startTime)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("southern_initialization_routine", 0, 2, 3, 1); __PYX_ERR(0, 185, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
          if (value) { values[2] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "southern_initialization_routine") < 0)) __PYX_ERR(0, 185, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_startTime = values[1];
    __pyx_v_scenario = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("southern_initialization_routine", 0, 2, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 185, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.southern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_6southern_initialization_routine(__pyx_self, __pyx_v_self, __pyx_v_startTime, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_6southern_initialization_routine(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_startTime, PyObject *__pyx_v_scenario) {
  PyObject *__pyx_v_urban_datafile = NULL;
  PyObject *__pyx_v_urban_datafile_cvp = NULL;
  PyObject *__pyx_v_project_pumping_datafile = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__4)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("southern_initialization_routine", 0);
  __Pyx_TraceCall("southern_initialization_routine", __pyx_f[0], 185, 0, __PYX_ERR(0, 185, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.southern_initialization_routine", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_urban_datafile);
  __Pyx_XDECREF(__pyx_v_urban_datafile_cvp);
  __Pyx_XDECREF(__pyx_v_project_pumping_datafile);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__88 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_startTime, __pyx_n_s_scenario, __pyx_n_s_urban_datafile, __pyx_n_s_urban_datafile_cvp, __pyx_n_s_project_pumping_datafile); if (unlikely(!__pyx_tuple__88)) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__88);
  __Pyx_GIVEREF(__pyx_tuple__88);
  __pyx_codeobj__4 = (PyObject*)__Pyx_PyCode_New(3, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__88, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_southern_initialization_routine, 185, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__4)) __PYX_ERR(0, 185, __pyx_L1_error)
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_7southern_initialization_routine, 0, __pyx_n_s_Model_southern_initialization_ro, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__4)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__89);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_southern_initialization_routine, __pyx_t_2) < 0) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_tuple__89 = PyTuple_Pack(1, ((PyObject*)__pyx_n_u_baseline)); if (unlikely(!__pyx_tuple__89)) __PYX_ERR(0, 185, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__89);
  __Pyx_GIVEREF(__pyx_tuple__89);
 0186:     ######################################################################################
 0187:     # preprocessing for the southern system
 0188:     ######################################################################################
 0189:     # initialize the southern reservoirs -
 0190:     # generates - same values as initialize_northern_res(), but for southern reservoirs
+0191:     self.initialize_southern_res()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_southern_res); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 191, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0192:     # print('Initialize Southern Reservoirs, time ', datetime.now() - startTime)
 0193:     # initialize water districts for southern model
 0194:     # generates - water district parameters (see calfews_src-combined/calfews_src/districts/readme.txt)
 0195:     # self.district_list - list of district objects
 0196:     # self.district_keys - dictionary pairing district keys w/district class objects
+0197:     self.initialize_water_districts(scenario)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_water_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 197, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0198:     # print('Initialize Water Districts, time ', datetime.now() - startTime)
 0199:     # initialize water contracts for southern model
 0200:     # generates - water contract parameters (see calfews_src-combined/calfews_src/contracts/readme.txt)
 0201:     # self.contract_list - list of contract objects
 0202:     # self.contract_keys - dictionary pairing contract keys w/contract class objects
 0203:     # self.res.contract_carryover_list - recalfews_src of carryover space afforded to each contract (for all district)
+0204:     self.initialize_sw_contracts()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_sw_contracts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 204, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0205:     # print('Initialize Contracts, time ', datetime.now() - startTime)
 0206:     # initialize water banks for southern model
 0207:     # generates - water bank parameters (see calfews_src-combined/calfews_src/banks/readme.txt)
 0208:     # self.waterbank_list - list of waterbank objects
 0209:     # self.leiu_list - list of district objects that also operate as 'in leiu' or 'direct recharge' waterbanks
+0210:     self.initialize_water_banks()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_water_banks); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 210, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0211:     # print('Initialize Water Banks, time ', datetime.now() - startTime)
 0212:     # initialize canals/waterways for southern model
 0213:     # generates - canal parameters (see calfews_src-combined/calfews_src/canals/readme.txt)
 0214:     # self.canal_list - list of canal objects
+0215:     self.initialize_canals(scenario)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_initialize_canals); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 215, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0216:     # print('Initialize Canals, time ', datetime.now() - startTime)
+0217:     if self.model_mode == 'validation':
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 217, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L3;
  }
+0218:       self.set_regulations_historical_south(scenario)
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_regulations_historical_south); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0219:     else:
+0220:       self.set_regulations_current_south(scenario)
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_regulations_current_south); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_scenario) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_scenario);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 220, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
 0221: 
 0222:     # create dictionaries that structure the relationships between
 0223:     # reservoirs, canals, districts, waterbanks, and contracts
 0224:     # generates:
 0225:     # self.canal_district - dict keys are canals, object lists place reservoirs, waterbanks, districts & other canals in order on a given canal
 0226:     # self.canal_priority - dict keys are canals, object lists are the 'main' canals that have 'priority' on the other canals (through turnouts)
 0227:     # self.reservoir_contract - dict keys are reservoirs, object lists are contracts stored in that reservoir
 0228:     # self.contract_reservoir - dict keys are contracts, objects (single) are reservoirs where that contract is stored (inverse of reservoir_contract)
 0229:     # self.canal_contract - dict keys are canals, object lists are contracts that have priority on those canals (primarily for flood flows)
 0230:     # self.reservoir_canal - dict keys are reservoirs, object lists are canal(s) that connect to the reservoir (note - only millerton has more than one canal)
 0231:     # Also initializes some canal properties
 0232:     # self.canal.demand - dictionary for the different types of demand that can be created at each canal node (note - these values are updated within model steps)
 0233:     # self.canal.flow - vector recalfews_srcing flow to a node on a canal (note - these values are updated within model steps)
 0234:     # self.canal.turnout_use - vector recalfews_srcing diversions to a node on a canal (note - these values are updated within model steps)
+0235:     self.create_object_associations()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_create_object_associations); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 235, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0236:     # print('Create Object Associations, time ', datetime.now() - startTime)
 0237: 
 0238:     ###Applies initial carryover balances to districts
 0239:     ##based on initial reservoir storage conditions
 0240:     ##PLEASE NOTE CARRYOVER STORAGE IN SAN LUIS IS HARD-CODED
+0241:     self.find_initial_carryover()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_initial_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0242:     # print('Initialize Carryover Storage, time ', datetime.now() - startTime)
 0243:     ##initial recovery capacities for districts, based on
 0244:     ##ownership stakes in waterbanks (direct + inleui)
+0245:     self.init_tot_recovery()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_init_tot_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0246:     # print('Initialize Recovery Capacity, time ', datetime.now() - startTime)
 0247:     ##initial recharge capacities (projected out 12 months) for districts,
 0248:     ##based on ownership stakes in waterbanks (direct + inleui + indistrict)
+0249:     urban_datafile = 'calfews_src/data/input/calfews_src-data-urban.csv'
  __Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_calfews_s);
  __pyx_v_urban_datafile = __pyx_kp_u_calfews_src_data_input_calfews_s;
+0250:     urban_datafile_cvp = 'calfews_src/data/input/pump-data-cvp.csv'
  __Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_pump_data);
  __pyx_v_urban_datafile_cvp = __pyx_kp_u_calfews_src_data_input_pump_data;
+0251:     project_pumping_datafile = 'calfews_src/data/input/reservoir_results_no_validation.csv'
  __Pyx_INCREF(__pyx_kp_u_calfews_src_data_input_reservoir);
  __pyx_v_project_pumping_datafile = __pyx_kp_u_calfews_src_data_input_reservoir;
+0252:     self.project_urban(urban_datafile, urban_datafile_cvp, project_pumping_datafile)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_project_urban); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 252, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_5 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_5 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_urban_datafile, __pyx_v_urban_datafile_cvp, __pyx_v_project_pumping_datafile};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_urban_datafile, __pyx_v_urban_datafile_cvp, __pyx_v_project_pumping_datafile};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_5, 3+__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(3+__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_urban_datafile);
    __Pyx_GIVEREF(__pyx_v_urban_datafile);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_5, __pyx_v_urban_datafile);
    __Pyx_INCREF(__pyx_v_urban_datafile_cvp);
    __Pyx_GIVEREF(__pyx_v_urban_datafile_cvp);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_5, __pyx_v_urban_datafile_cvp);
    __Pyx_INCREF(__pyx_v_project_pumping_datafile);
    __Pyx_GIVEREF(__pyx_v_project_pumping_datafile);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_5, __pyx_v_project_pumping_datafile);
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0253:     # calculate how much recharge capacity is reachable from each reservoir
 0254:     # that is owned by surface water contracts held at that reservoir - used to determine
 0255:     # how much flood water can be released and 'taken' by a contractor
+0256:     self.find_all_triggers()
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 256, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0257:     # print('Find Triggers, time ', datetime.now() - startTime)
 0258: 
 0259: 
 0260: 
+0261:   def initialize_northern_res(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_9initialize_northern_res(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_9initialize_northern_res = {"initialize_northern_res", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_9initialize_northern_res, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_9initialize_northern_res(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_northern_res (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_8initialize_northern_res(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_8initialize_northern_res(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_reservoir_list = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__5)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_northern_res", 0);
  __Pyx_TraceCall("initialize_northern_res", __pyx_f[0], 261, 0, __PYX_ERR(0, 261, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_northern_res", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_reservoir_list);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__90 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_reservoir_list, __pyx_n_s_x); if (unlikely(!__pyx_tuple__90)) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__90);
  __Pyx_GIVEREF(__pyx_tuple__90);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_9initialize_northern_res, 0, __pyx_n_s_Model_initialize_northern_res, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__5)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_northern_res, __pyx_t_2) < 0) __PYX_ERR(0, 261, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__5 = (PyObject*)__Pyx_PyCode_New(1, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__90, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_northern_res, 261, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__5)) __PYX_ERR(0, 261, __pyx_L1_error)
 0262: 
 0263:     #########################################################################################
 0264: 	#reservoir initialization for the northern delta system
 0265:     #########################################################################################
 0266:     #4 Sacramento River Reservoirs (CVP & SWP)
+0267:     self.shasta = Reservoir(self, 'shasta', 'SHA', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_shasta);
  __Pyx_GIVEREF(__pyx_n_u_shasta);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_shasta);
  __Pyx_INCREF(__pyx_n_u_SHA);
  __Pyx_GIVEREF(__pyx_n_u_SHA);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SHA);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_shasta, __pyx_t_1) < 0) __PYX_ERR(0, 267, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0268:     self.folsom = Reservoir(self, 'folsom', 'FOL', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_folsom);
  __Pyx_GIVEREF(__pyx_n_u_folsom);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_folsom);
  __Pyx_INCREF(__pyx_n_u_FOL);
  __Pyx_GIVEREF(__pyx_n_u_FOL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_FOL);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_folsom, __pyx_t_1) < 0) __PYX_ERR(0, 268, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0269:     self.oroville = Reservoir(self, 'oroville', 'ORO', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_oroville);
  __Pyx_GIVEREF(__pyx_n_u_oroville);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_oroville);
  __Pyx_INCREF(__pyx_n_u_ORO);
  __Pyx_GIVEREF(__pyx_n_u_ORO);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ORO);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_oroville, __pyx_t_1) < 0) __PYX_ERR(0, 269, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0270:     self.yuba = Reservoir(self, 'yuba', 'YRS', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_yuba);
  __Pyx_GIVEREF(__pyx_n_u_yuba);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_yuba);
  __Pyx_INCREF(__pyx_n_u_YRS);
  __Pyx_GIVEREF(__pyx_n_u_YRS);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_YRS);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_yuba, __pyx_t_1) < 0) __PYX_ERR(0, 270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0271: 
 0272:     #3 San Joaquin River Reservoirs (to meet Vernalis flow targets)
+0273:     self.newmelones = Reservoir(self, 'newmelones', 'NML', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_newmelones);
  __Pyx_GIVEREF(__pyx_n_u_newmelones);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_newmelones);
  __Pyx_INCREF(__pyx_n_u_NML);
  __Pyx_GIVEREF(__pyx_n_u_NML);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_NML);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_newmelones, __pyx_t_1) < 0) __PYX_ERR(0, 273, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0274:     self.donpedro = Reservoir(self, 'donpedro', 'DNP', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_donpedro);
  __Pyx_GIVEREF(__pyx_n_u_donpedro);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_donpedro);
  __Pyx_INCREF(__pyx_n_u_DNP);
  __Pyx_GIVEREF(__pyx_n_u_DNP);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_DNP);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_donpedro, __pyx_t_1) < 0) __PYX_ERR(0, 274, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0275:     self.exchequer = Reservoir(self, 'exchequer', 'EXC', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_exchequer);
  __Pyx_GIVEREF(__pyx_n_u_exchequer);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_exchequer);
  __Pyx_INCREF(__pyx_n_u_EXC);
  __Pyx_GIVEREF(__pyx_n_u_EXC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_EXC);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_exchequer, __pyx_t_1) < 0) __PYX_ERR(0, 275, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0276: 
+0277:     self.reservoir_list = [self.shasta, self.oroville, self.yuba, self.folsom, self.newmelones, self.donpedro,
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_8 = PyList_New(7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_8, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_8, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_8, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_8, 6, __pyx_t_7);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list, __pyx_t_8) < 0) __PYX_ERR(0, 277, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0278:                            self.exchequer]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
 0279: 
 0280:     #Millerton Reservoir (flows used to calculate San Joaquin River index, not in northern simulation)
+0281:     self.millerton = Reservoir(self, 'millerton', 'MIL', self.model_mode)
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_millerton);
  __Pyx_GIVEREF(__pyx_n_u_millerton);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_millerton);
  __Pyx_INCREF(__pyx_n_u_MIL);
  __Pyx_GIVEREF(__pyx_n_u_MIL);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_MIL);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_millerton, __pyx_t_8) < 0) __PYX_ERR(0, 281, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0282:     reservoir_list = [self.shasta, self.oroville, self.folsom, self.yuba, self.newmelones, self.donpedro, self.exchequer, self.millerton]
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = PyList_New(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_9, 4, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_9, 5, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_9, 6, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_9, 7, __pyx_t_1);
  __pyx_t_8 = 0;
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_3 = 0;
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_v_reservoir_list = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;
 0283:     ##Regression flow & standard deviations read from file
 0284:     #### Find regression information for all 8 reservoirs
+0285:     if self.model_mode == 'climate_ensemble':
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 285, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_10) {
/* … */
    goto __pyx_L3;
  }
 0286:       ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
 0287:       # df_res_process = pd.DataFrame()
 0288:       # df_res_annual = pd.DataFrame()
+0289:       for x in reservoir_list:
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 289, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 289, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0290:         x.find_release_func(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 290, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0291:       ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
 0292:       ###that is expected to come, regressed against the total flow already observed in that period
 0293:       ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0294:       for x in reservoir_list:
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 294, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0295:         x.create_flow_shapes(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0296:     elif self.model_mode == 'validation':
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_10 < 0)) __PYX_ERR(0, 296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_10) {
/* … */
    goto __pyx_L3;
  }
 0297: 	  ## 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
 0298:       # df_res_process = pd.DataFrame()
 0299:       # df_res_annual = pd.DataFrame()
+0300:       for x in reservoir_list:
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 300, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0301:         x.find_release_func(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0302:         # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
 0303:         # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
 0304:         # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
 0305:         # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
 0306:         # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
 0307:         #
 0308:         # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
 0309:         # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
 0310:         # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
 0311:         # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
 0312:         # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
 0313:       # df_res_process.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_daily.csv')
 0314:       # df_res_annual.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_annual.csv')
 0315: 
 0316:       #flow_estimates = pd.read_csv('calfews_src/data/temp_output/input/no_res_preprocess_daily.csv', index_col=0, parse_dates=True)
 0317:       #std_estimates = pd.read_csv('calfews_src/data/temp_output/input/no_res_preprocess_annual.csv')
 0318:       #for x in reservoir_list:
 0319:         #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
 0320:         #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
 0321:         #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
 0322:         #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
 0323:         #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
 0324:         #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
 0325:         #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
 0326:         #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
 0327:         #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
 0328:         #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
 0329:       ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
 0330: 	  ###that is expected to come, regressed against the total flow already observed in that period
 0331: 	  ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
 0332:       #df_flow_shape_no = pd.DataFrame()
+0333:       for x in reservoir_list:
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 333, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0334:         x.create_flow_shapes(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0335:     else:
 0336: 	  ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
 0337:       # df_res_process = pd.DataFrame()
 0338:       # df_res_annual = pd.DataFrame()
+0339:       for x in reservoir_list:
  /*else*/ {
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 339, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0340:         x.find_release_func(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0341:         # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
 0342:         # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
 0343:         # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
 0344:         # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
 0345:         # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
 0346:         #
 0347:         # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
 0348:         # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
 0349:         # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
 0350:         # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
 0351:         # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
 0352:       # df_res_process.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_daily.csv')
 0353:       # df_res_annual.to_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_annual.csv')
 0354: 
 0355:       #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_daily.csv')
 0356:       #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/no_res_preprocess_simulation_annual.csv')
 0357:       #for x in reservoir_list:
 0358:         #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
 0359:         #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
 0360:         #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
 0361:         #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
 0362:         #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
 0363:         #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
 0364:         #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
 0365:         #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
 0366:         #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
 0367:         #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
 0368: 
 0369: 	  ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
 0370: 	  ###that is expected to come, regressed against the total flow already observed in that period
 0371: 	  ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
 0372:       #df_flow_shape_no = pd.DataFrame()
+0373:       for x in reservoir_list:
    __pyx_t_9 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_11 = 0;
    for (;;) {
      if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 373, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 373, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  }
  __pyx_L3:;
+0374:         x.create_flow_shapes(self)
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 374, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0375:     #########################################################################################
 0376: 
+0377:   def initialize_delta_ops(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_11initialize_delta_ops(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_11initialize_delta_ops = {"initialize_delta_ops", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_11initialize_delta_ops, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_11initialize_delta_ops(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_delta_ops (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_10initialize_delta_ops(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_10initialize_delta_ops(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_gains_sac_short = NULL;
  PyObject *__pyx_v_gains_sj_short = NULL;
  PyObject *__pyx_v_depletions_short = NULL;
  PyObject *__pyx_v_eastside_streams_short = NULL;
  PyObject *__pyx_v_inflow_list = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_expected_outflow_req = NULL;
  PyObject *__pyx_v_expected_depletion = NULL;
  PyObject *__pyx_7genexpr__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__6)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_delta_ops", 0);
  __Pyx_TraceCall("initialize_delta_ops", __pyx_f[0], 377, 0, __PYX_ERR(0, 377, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_delta_ops", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_gains_sac_short);
  __Pyx_XDECREF(__pyx_v_gains_sj_short);
  __Pyx_XDECREF(__pyx_v_depletions_short);
  __Pyx_XDECREF(__pyx_v_eastside_streams_short);
  __Pyx_XDECREF(__pyx_v_inflow_list);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_expected_outflow_req);
  __Pyx_XDECREF(__pyx_v_expected_depletion);
  __Pyx_XDECREF(__pyx_7genexpr__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__91 = PyTuple_Pack(10, __pyx_n_s_self, __pyx_n_s_gains_sac_short, __pyx_n_s_gains_sj_short, __pyx_n_s_depletions_short, __pyx_n_s_eastside_streams_short, __pyx_n_s_inflow_list, __pyx_n_s_x, __pyx_n_s_expected_outflow_req, __pyx_n_s_expected_depletion, __pyx_n_s__12); if (unlikely(!__pyx_tuple__91)) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__91);
  __Pyx_GIVEREF(__pyx_tuple__91);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_11initialize_delta_ops, 0, __pyx_n_s_Model_initialize_delta_ops, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__6)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_delta_ops, __pyx_t_2) < 0) __PYX_ERR(0, 377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__6 = (PyObject*)__Pyx_PyCode_New(1, 0, 10, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__91, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_delta_ops, 377, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__6)) __PYX_ERR(0, 377, __pyx_L1_error)
 0378: 	#########################################################################################
 0379:     ##initialization of the delta rules
 0380:     #########################################################################################
+0381:     self.delta = Delta(self, 'delta', 'DEL', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_delta);
  __Pyx_GIVEREF(__pyx_n_u_delta);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_delta);
  __Pyx_INCREF(__pyx_n_u_DEL);
  __Pyx_GIVEREF(__pyx_n_u_DEL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_DEL);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8delta_cy_Delta), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_delta, __pyx_t_1) < 0) __PYX_ERR(0, 381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0382: 
+0383:     if self.use_sensitivity:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+0384:       self.delta.set_sensitivity_factors(self.sensitivity_factors['delta_outflow_multiplier']['realization'], self.sensitivity_factors['omr_flow']['realization'], self.sensitivity_factors['omr_probability']['realization'])
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_delta_outflow_multiplier); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_realization); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_omr_flow); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_realization); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_omr_probability); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_realization); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, __pyx_t_5, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_t_2, __pyx_t_5, __pyx_t_6};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_t_6);
      __pyx_t_2 = 0;
      __pyx_t_5 = 0;
      __pyx_t_6 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0385: 
 0386: 	###Find expected reservoir releases to meet delta requirements - used in flow forecasting
 0387:     ###these use the flow 'gains' on each tributary stretch to find the expected extra releases required to meet env & delta mins
+0388:     gains_sac_short = self.df_short.SAC_gains * cfs_tafd
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SAC_gains); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_gains_sac_short = __pyx_t_9;
  __pyx_t_9 = 0;
+0389:     gains_sj_short = self.df_short.SJ_gains * cfs_tafd
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_SJ_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_v_gains_sj_short = __pyx_t_4;
  __pyx_t_4 = 0;
+0390:     depletions_short = self.df_short.delta_depletions * cfs_tafd
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_delta_depletions); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_depletions_short = __pyx_t_1;
  __pyx_t_1 = 0;
+0391:     eastside_streams_short = self.df_short.EAST_gains * cfs_tafd
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_EAST_gains); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_eastside_streams_short = __pyx_t_9;
  __pyx_t_9 = 0;
+0392:     inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville, self.newmelones, self.donpedro, self.exchequer]
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_10 = PyList_New(7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 392, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_10, 0, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_10, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_10, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_10, 3, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_10, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_10, 5, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_10, 6, __pyx_t_7);
  __pyx_t_9 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_2 = 0;
  __pyx_t_7 = 0;
  __pyx_v_inflow_list = ((PyObject*)__pyx_t_10);
  __pyx_t_10 = 0;
+0393:     for x in inflow_list:
  __pyx_t_10 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_11 = 0;
  for (;;) {
    if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_10)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 393, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_10, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0394:       x.downstream_short = [_ * cfs_tafd for _ in self.df_short['%s_gains'% x.key].values]
    { /* enter inner scope */
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_gains, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L8_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 394, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 394, __pyx_L8_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 394, __pyx_L8_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 394, __pyx_L8_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L8_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_13(__pyx_t_5);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 394, __pyx_L8_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_7genexpr__pyx_v__, __pyx_t_6);
        __pyx_t_6 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 394, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = PyNumber_Multiply(__pyx_7genexpr__pyx_v__, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 394, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_2))) __PYX_ERR(0, 394, __pyx_L8_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v__); __pyx_7genexpr__pyx_v__ = 0;
      goto __pyx_L11_exit_scope;
      __pyx_L8_error:;
      __Pyx_XDECREF(__pyx_7genexpr__pyx_v__); __pyx_7genexpr__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L11_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_downstream_short, __pyx_t_7) < 0) __PYX_ERR(0, 394, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0395: 
 0396:     ##in addition to output variables, this generates:
 0397: 	#self.max_tax_free (5x2x365) - using delta outflow min, calculate how much pumping can occur without paying any additional I/E 'tax' (b/c some inflow is already used for delta outflow requirements)
+0398:     expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self,self.shasta.downstream_short,self.oroville.downstream_short,self.yuba.downstream_short,self.folsom.downstream_short, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases, gains_sac_short, gains_sj_short, depletions_short, eastside_streams_short)
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_calc_expected_delta_outflow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_downstream_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_downstream_short); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_downstream_short); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_downstream_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_temp_releases); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_temp_releases); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_temp_releases); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_temp_releases); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[14] = {__pyx_t_7, __pyx_v_self, __pyx_t_2, __pyx_t_6, __pyx_t_4, __pyx_t_1, __pyx_t_9, __pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_gains_sac_short, __pyx_v_gains_sj_short, __pyx_v_depletions_short, __pyx_v_eastside_streams_short};
    __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 13+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[14] = {__pyx_t_7, __pyx_v_self, __pyx_t_2, __pyx_t_6, __pyx_t_4, __pyx_t_1, __pyx_t_9, __pyx_t_14, __pyx_t_15, __pyx_t_16, __pyx_v_gains_sac_short, __pyx_v_gains_sj_short, __pyx_v_depletions_short, __pyx_v_eastside_streams_short};
    __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 13+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  } else
  #endif
  {
    __pyx_t_17 = PyTuple_New(13+__pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    if (__pyx_t_7) {
      __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_7); __pyx_t_7 = NULL;
    }
    __Pyx_INCREF(__pyx_v_self);
    __Pyx_GIVEREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_8, __pyx_v_self);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_8, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_8, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_8, __pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_15);
    PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_8, __pyx_t_15);
    __Pyx_GIVEREF(__pyx_t_16);
    PyTuple_SET_ITEM(__pyx_t_17, 8+__pyx_t_8, __pyx_t_16);
    __Pyx_INCREF(__pyx_v_gains_sac_short);
    __Pyx_GIVEREF(__pyx_v_gains_sac_short);
    PyTuple_SET_ITEM(__pyx_t_17, 9+__pyx_t_8, __pyx_v_gains_sac_short);
    __Pyx_INCREF(__pyx_v_gains_sj_short);
    __Pyx_GIVEREF(__pyx_v_gains_sj_short);
    PyTuple_SET_ITEM(__pyx_t_17, 10+__pyx_t_8, __pyx_v_gains_sj_short);
    __Pyx_INCREF(__pyx_v_depletions_short);
    __Pyx_GIVEREF(__pyx_v_depletions_short);
    PyTuple_SET_ITEM(__pyx_t_17, 11+__pyx_t_8, __pyx_v_depletions_short);
    __Pyx_INCREF(__pyx_v_eastside_streams_short);
    __Pyx_GIVEREF(__pyx_v_eastside_streams_short);
    PyTuple_SET_ITEM(__pyx_t_17, 12+__pyx_t_8, __pyx_v_eastside_streams_short);
    __pyx_t_2 = 0;
    __pyx_t_6 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = 0;
    __pyx_t_9 = 0;
    __pyx_t_14 = 0;
    __pyx_t_15 = 0;
    __pyx_t_16 = 0;
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_17, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) {
    PyObject* sequence = __pyx_t_10;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 398, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_17 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_17 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_17);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_17 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    #endif
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_16 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_18 = Py_TYPE(__pyx_t_16)->tp_iternext;
    index = 0; __pyx_t_5 = __pyx_t_18(__pyx_t_16); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 1; __pyx_t_17 = __pyx_t_18(__pyx_t_16); if (unlikely(!__pyx_t_17)) goto __pyx_L12_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_17);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_18(__pyx_t_16), 2) < 0) __PYX_ERR(0, 398, __pyx_L1_error)
    __pyx_t_18 = NULL;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    goto __pyx_L13_unpacking_done;
    __pyx_L12_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_18 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 398, __pyx_L1_error)
    __pyx_L13_unpacking_done:;
  }
  __pyx_v_expected_outflow_req = __pyx_t_5;
  __pyx_t_5 = 0;
  __pyx_v_expected_depletion = __pyx_t_17;
  __pyx_t_17 = 0;
 0399: 	#these requirements are then passed back to the reservoirs so that they know how much water to hold on to
 0400:     #Calculated the expected releases for environmental flows & delta outflow requirements
 0401:     #pre-processed to help with forecasts of available storage for export
 0402:     ##Yuba has an extra flow catagorization for environmental minimum flows,
 0403:     ## 'extra critical' - use critical year delta outflow requirements in that year type
+0404:     expected_outflow_req = self.delta.min_outflow
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF_SET(__pyx_v_expected_outflow_req, __pyx_t_17);
  __pyx_t_17 = 0;
+0405:     expected_outflow_req['EC'] = expected_outflow_req['C']
  __pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_outflow_req, __pyx_n_u_C); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (unlikely(PyObject_SetItem(__pyx_v_expected_outflow_req, __pyx_n_u_EC, __pyx_t_17) < 0)) __PYX_ERR(0, 405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 0406:     #generates:
 0407:     #x.cum_min_release (5 x 365) - daily values of remaining enviromental releases through the end of july, in each wyt
 0408:     #x.aug_sept_min_release (5 x 365) - daily values of remaining enviromental releases during the aug-sept period, in each wyt
 0409:     #x.oct_nov_min_release (5 x 365) - daily values of remaining enviromental releases during the oct-nov period, in each wyt
+0410:     for x in inflow_list:
  __pyx_t_17 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_17); __pyx_t_11 = 0;
  for (;;) {
    if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_17)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_10 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_11); __Pyx_INCREF(__pyx_t_10); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 410, __pyx_L1_error)
    #else
    __pyx_t_10 = PySequence_ITEM(__pyx_t_17, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 410, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+0411:       x.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 411, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_16 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_16)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_16);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_16, __pyx_v_self, __pyx_v_expected_outflow_req, __pyx_v_expected_depletion, __pyx_int_0};
      __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 411, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_GOTREF(__pyx_t_10);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[5] = {__pyx_t_16, __pyx_v_self, __pyx_v_expected_outflow_req, __pyx_v_expected_depletion, __pyx_int_0};
      __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 411, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_GOTREF(__pyx_t_10);
    } else
    #endif
    {
      __pyx_t_15 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (__pyx_t_16) {
        __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_16); __pyx_t_16 = NULL;
      }
      __Pyx_INCREF(__pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_v_self);
      __Pyx_INCREF(__pyx_v_expected_outflow_req);
      __Pyx_GIVEREF(__pyx_v_expected_outflow_req);
      PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_v_expected_outflow_req);
      __Pyx_INCREF(__pyx_v_expected_depletion);
      __Pyx_GIVEREF(__pyx_v_expected_depletion);
      PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_v_expected_depletion);
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_int_0);
      __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_15, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 0412: 
+0413:     self.delta.create_flow_shapes_omr(self)
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_create_flow_shapes_omr); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_17 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_10, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 0414: 
+0415:   def initialize_southern_res(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_13initialize_southern_res(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_13initialize_southern_res = {"initialize_southern_res", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_13initialize_southern_res, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_13initialize_southern_res(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_southern_res (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_12initialize_southern_res(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_12initialize_southern_res(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_reservoir_list = NULL;
  PyObject *__pyx_v_expected_outflow_releases = NULL;
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_v_inflow_list = NULL;
  long __pyx_v_sjrr_toggle_value;
  PyObject *__pyx_8genexpr1__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__7)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_southern_res", 0);
  __Pyx_TraceCall("initialize_southern_res", __pyx_f[0], 415, 0, __PYX_ERR(0, 415, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_southern_res", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_reservoir_list);
  __Pyx_XDECREF(__pyx_v_expected_outflow_releases);
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XDECREF(__pyx_v_inflow_list);
  __Pyx_XDECREF(__pyx_8genexpr1__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__92 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_reservoir_list, __pyx_n_s_expected_outflow_releases, __pyx_n_s_wyt, __pyx_n_s_inflow_list, __pyx_n_s_sjrr_toggle_value, __pyx_n_s__12); if (unlikely(!__pyx_tuple__92)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__92);
  __Pyx_GIVEREF(__pyx_tuple__92);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_13initialize_southern_res, 0, __pyx_n_s_Model_initialize_southern_res, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__7)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_southern_res, __pyx_t_2) < 0) __PYX_ERR(0, 415, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__7 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__92, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_southern_res, 415, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__7)) __PYX_ERR(0, 415, __pyx_L1_error)
 0416:     ############################################################################
 0417:     ###Reservoir Initialization
 0418: 	############################################################################
+0419:     self.millerton = Reservoir(self, 'millerton', 'MIL', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_millerton);
  __Pyx_GIVEREF(__pyx_n_u_millerton);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_millerton);
  __Pyx_INCREF(__pyx_n_u_MIL);
  __Pyx_GIVEREF(__pyx_n_u_MIL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_MIL);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_millerton, __pyx_t_1) < 0) __PYX_ERR(0, 419, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0420:     self.pineflat = Reservoir(self, 'pineflat', 'PFT', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_pineflat);
  __Pyx_GIVEREF(__pyx_n_u_pineflat);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_pineflat);
  __Pyx_INCREF(__pyx_n_u_PFT);
  __Pyx_GIVEREF(__pyx_n_u_PFT);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PFT);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pineflat, __pyx_t_1) < 0) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0421:     self.kaweah = Reservoir(self, 'kaweah', 'KWH', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kaweah);
  __Pyx_GIVEREF(__pyx_n_u_kaweah);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kaweah);
  __Pyx_INCREF(__pyx_n_u_KWH);
  __Pyx_GIVEREF(__pyx_n_u_KWH);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KWH);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kaweah, __pyx_t_1) < 0) __PYX_ERR(0, 421, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0422:     self.success = Reservoir(self, 'success', 'SUC', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_success);
  __Pyx_GIVEREF(__pyx_n_u_success);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_success);
  __Pyx_INCREF(__pyx_n_u_SUC);
  __Pyx_GIVEREF(__pyx_n_u_SUC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SUC);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_success, __pyx_t_1) < 0) __PYX_ERR(0, 422, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0423:     self.isabella = Reservoir(self, 'isabella', 'ISB', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_isabella);
  __Pyx_GIVEREF(__pyx_n_u_isabella);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_isabella);
  __Pyx_INCREF(__pyx_n_u_ISB);
  __Pyx_GIVEREF(__pyx_n_u_ISB);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ISB);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_isabella, __pyx_t_1) < 0) __PYX_ERR(0, 423, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0424:     ###San Luis is initialized as a Reservoir, but
 0425:     ###has none of the watershed data that goes along with the other reservoirs
+0426:     self.sanluis = Reservoir(self, 'sanluis', 'SNL', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_sanluis);
  __Pyx_GIVEREF(__pyx_n_u_sanluis);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sanluis);
  __Pyx_INCREF(__pyx_n_u_SNL);
  __Pyx_GIVEREF(__pyx_n_u_SNL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SNL);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sanluis, __pyx_t_1) < 0) __PYX_ERR(0, 426, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0427:     self.sanluisstate = Reservoir(self, 'sanluisstate', 'SLS', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_sanluisstate);
  __Pyx_GIVEREF(__pyx_n_u_sanluisstate);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sanluisstate);
  __Pyx_INCREF(__pyx_n_u_SLS);
  __Pyx_GIVEREF(__pyx_n_u_SLS);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SLS);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate, __pyx_t_1) < 0) __PYX_ERR(0, 427, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0428:     self.sanluisfederal = Reservoir(self, 'sanluisfederal', 'SLF', self.model_mode)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_sanluisfederal);
  __Pyx_GIVEREF(__pyx_n_u_sanluisfederal);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sanluisfederal);
  __Pyx_INCREF(__pyx_n_u_SLF);
  __Pyx_GIVEREF(__pyx_n_u_SLF);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SLF);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12reservoir_cy_Reservoir), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal, __pyx_t_1) < 0) __PYX_ERR(0, 428, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0429:     self.reservoir_list = [self.sanluisstate, self.sanluisfederal, self.millerton, self.isabella, self.success, self.kaweah, self.pineflat]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyList_New(7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_8, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_8, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_8, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_8, 6, __pyx_t_7);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list, __pyx_t_8) < 0) __PYX_ERR(0, 429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0430:     if self.model_mode == 'climate_ensemble':
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_9) {
/* … */
    goto __pyx_L3;
  }
 0431:       ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
+0432:       for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyTuple_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_3, 4, __pyx_t_4);
    __pyx_t_8 = 0;
    __pyx_t_7 = 0;
    __pyx_t_6 = 0;
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (__pyx_t_10 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 432, __pyx_L1_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0433:         x.find_release_func(self)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 433, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_3 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 433, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0434:       for x in [self.pineflat, self.millerton, self.isabella, self.success, self.kaweah]:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_t_7);
    __pyx_t_4 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_10 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 434, __pyx_L1_error)
      #else
      __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 434, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0435:         x.create_flow_shapes(self)
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_8 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0436:     elif self.model_mode == 'validation':	  ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 436, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_9) {
/* … */
    goto __pyx_L3;
  }
 0437:       # df_res_process = pd.DataFrame()
 0438:       # df_res_annual = pd.DataFrame()
+0439:       for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_4, 3, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 4, __pyx_t_3);
    __pyx_t_7 = 0;
    __pyx_t_8 = 0;
    __pyx_t_6 = 0;
    __pyx_t_5 = 0;
    __pyx_t_3 = 0;
    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_10 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 439, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 439, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0440:         x.find_release_func(self)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 440, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 440, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 0441:         # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
 0442:         # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
 0443:         # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
 0444:         # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
 0445:         # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
 0446:         #
 0447:         # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
 0448:         # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
 0449:         # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
 0450:         # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
 0451:         # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
 0452:       # df_res_process.to_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv')
 0453:       # df_res_annual.to_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
 0454: 
 0455:       ##Regression flow & standard deviations read from file (see end of function for code to generate files)	  
 0456:       #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv', index_col=0, parse_dates=True)
 0457:       #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
 0458: 	  #### Find regression information for all 8 reservoirs 
 0459: 	  ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
 0460:       #for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
 0461:         #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]#FNF, Oct-Mar, Linear coefficients
 0462:         #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]#FNF, Apr-Jul, Linear coefficients
 0463:         #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]#INF, Oct-Mar, Linear coefficients
 0464:         #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]#INF, Apr-Jul, Linear coefficients
 0465:         #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]#INF, Aug-Sept, Linear coefficients
 0466:         #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]#FNF, Oct-Mar, STD
 0467:         #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]#FNF, Apr-Jul, STD
 0468:         #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]#INF, Oct-Mar, STD
 0469:         #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]#INF, Apr-Jul, STD
 0470:         #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]#INF, Aug-Sept, STD
 0471: 
 0472:       ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
 0473: 	  ###that is expected to come, regressed against the total flow already observed in that period
 0474: 	  ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0475:       for x in [self.pineflat, self.millerton, self.isabella, self.success, self.kaweah]:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_8);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_5 = 0;
    __pyx_t_6 = 0;
    __pyx_t_8 = 0;
    __pyx_t_8 = __pyx_t_7; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (__pyx_t_10 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 475, __pyx_L1_error)
      #else
      __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 475, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0476:         x.create_flow_shapes(self)
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 476, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 476, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0477:     else:
 0478: 	  ### 5 sets of daily linear coefficients & standard devations at each reservoir - (2x2) FNF/INFLOWS x OCT-MAR/APR-JUL + (1) INFLOWS AUG-SEPT
+0479:       reservoir_list = [self.millerton, self.isabella, self.pineflat, self.kaweah, self.success]
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = PyList_New(5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 479, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_8);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_5);
    PyList_SET_ITEM(__pyx_t_3, 3, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_4);
    PyList_SET_ITEM(__pyx_t_3, 4, __pyx_t_4);
    __pyx_t_8 = 0;
    __pyx_t_7 = 0;
    __pyx_t_6 = 0;
    __pyx_t_5 = 0;
    __pyx_t_4 = 0;
    __pyx_v_reservoir_list = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
 0480:       # df_res_process = pd.DataFrame()
 0481:       # df_res_annual = pd.DataFrame()
+0482:       for x in reservoir_list:
    __pyx_t_3 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
    for (;;) {
      if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 482, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 482, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+0483:         x.find_release_func(self)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 483, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 0484:         # df_res_process['%s_rainfnf' %x.key] = pd.Series(x.rainflood_fnf, index = self.index)
 0485:         # df_res_process['%s_snowfnf' %x.key] = pd.Series(x.snowflood_fnf, index = self.index)
 0486:         # df_res_process['%s_raininf' %x.key] = pd.Series(x.rainflood_inf, index = self.index)
 0487:         # df_res_process['%s_snowinf' %x.key] = pd.Series(x.snowflood_inf, index = self.index)
 0488:         # df_res_process['%s_baseinf' %x.key] = pd.Series(x.baseline_inf, index = self.index)
 0489:         #
 0490:         # df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
 0491:         # df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
 0492:         # df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
 0493:         # df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
 0494:         # df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
 0495:       # df_res_process.to_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_daily.csv')
 0496:       # df_res_annual.to_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_annual.csv')
 0497: 
 0498:       #flow_estimates = pd.read_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_daily.csv')
 0499:       #std_estimates = pd.read_csv('calfews_src/data/input/temp_output/so_res_preprocess_simulation_annual.csv')
 0500:       #for x in reservoir_list:
 0501:         #x.rainflood_fnf = flow_estimates['%s_rainfnf' % x.key]##FNF, OCT-MAR, LINEAR COEF
 0502:         #x.snowflood_fnf = flow_estimates['%s_snowfnf' % x.key]##FNF, APR-JUL, LINEAR COEF
 0503:         #x.rainflood_inf = flow_estimates['%s_raininf' % x.key]##INF, OCT-MAR, LINEAR COEF
 0504:         #x.snowflood_inf = flow_estimates['%s_snowinf' % x.key]##INF, APR-JUL, LINEAR COEF
 0505:         #x.baseline_inf = flow_estimates['%s_baseinf' % x.key]##INF, AUG-SEPT, LINEAR COEF
 0506:         #x.rainfnf_stds = std_estimates['%s_rainfnfstd' % x.key]##FNF, OCT-MAR, STD
 0507:         #x.snowfnf_stds = std_estimates['%s_snowfnfstd' % x.key]##FNF, APR-JUL, STD
 0508:         #x.raininf_stds = std_estimates['%s_raininfstd' % x.key]##INF, OCT-MAR, STD
 0509:         #x.snowinf_stds = std_estimates['%s_snowinfstd' % x.key]##INF, APR-JUL, STD
 0510:         #x.baseinf_stds = std_estimates['%s_baseinfstd' % x.key]##INF, AUG-SEPT, STD
 0511: 
 0512: 	  ###Flow shapes are regressions that determine % of remaining flow in a period (Oct-Mar; Apr-Jul; Aug-Sept)
 0513: 	  ###that is expected to come, regressed against the total flow already observed in that period
 0514: 	  ###regressions are done for each reservoir, and values are calculated for each month (i.e., 33% of remaining Apr-Jul flow comes in May)
+0515:       for x in reservoir_list:
    __pyx_t_3 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
    for (;;) {
      if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 515, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L3:;
+0516:         x.create_flow_shapes(self)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_create_flow_shapes); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_4 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_self);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 0517:     #########################################################################################	  
 0518: 
 0519:     #Tulare Basin Reservoirs do not need to release to the delta, so they only use their own
 0520:     #environmental flow requirements when calculating expected environmental releases
 0521: 	#arguements passed into the function here are equal to zero
+0522:     expected_outflow_releases = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+0523:     for wyt in ['W', 'AN', 'BN', 'D', 'C']:
  __pyx_t_3 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
  for (;;) {
    if (__pyx_t_10 >= 5) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 523, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_4));
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
  __pyx_tuple__8 = PyTuple_Pack(5, __pyx_n_u_W, __pyx_n_u_AN, __pyx_n_u_BN, __pyx_n_u_D, __pyx_n_u_C); if (unlikely(!__pyx_tuple__8)) __PYX_ERR(0, 523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__8);
  __Pyx_GIVEREF(__pyx_tuple__8);
+0524:       expected_outflow_releases[wyt] = np.zeros(366)
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_int_366);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_4) < 0)) __PYX_ERR(0, 524, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0525:     inflow_list = [self.millerton, self.pineflat, self.kaweah, self.success, self.isabella]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyList_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_8, 3, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_8, 4, __pyx_t_7);
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_7 = 0;
  __pyx_v_inflow_list = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;
+0526:     for x in inflow_list:
  __pyx_t_8 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
  for (;;) {
    if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 526, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0527:       x.downstream_short = [_ * cfs_tafd for _ in self.df_short['%s_gains'% x.key].values]
    { /* enter inner scope */
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_gains, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L22_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
        __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 527, __pyx_L22_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 527, __pyx_L22_error)
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 527, __pyx_L22_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L22_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 527, __pyx_L22_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L22_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_12(__pyx_t_6);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 527, __pyx_L22_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr1__pyx_v__, __pyx_t_4);
        __pyx_t_4 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 527, __pyx_L22_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyNumber_Multiply(__pyx_8genexpr1__pyx_v__, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 527, __pyx_L22_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 527, __pyx_L22_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v__); __pyx_8genexpr1__pyx_v__ = 0;
      goto __pyx_L25_exit_scope;
      __pyx_L22_error:;
      __Pyx_XDECREF(__pyx_8genexpr1__pyx_v__); __pyx_8genexpr1__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L25_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_downstream_short, __pyx_t_7) < 0) __PYX_ERR(0, 527, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0528: 
+0529:     for x in inflow_list:
  __pyx_t_8 = __pyx_v_inflow_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
  for (;;) {
    if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_7); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 529, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 0530:       #generates:
 0531:       #x.cum_min_release (5 x 365) - daily values of remaining enviromental releases through the end of july, in each wyt
 0532:       #x.aug_sept_min_release (5 x 365) - daily values of remaining enviromental releases during the aug-sept period, in each wyt
 0533:       #x.oct_nov_min_release (5 x 365) - daily values of remaining enviromental releases during the oct-nov period, in each wyt
+0534:       if x.key == "MIL":
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 534, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_9) {
/* … */
      goto __pyx_L28;
    }
+0535:         if self.model_mode == 'validation':
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 535, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 535, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_9) {
/* … */
        goto __pyx_L29;
      }
+0536:           sjrr_toggle_value = 0
        __pyx_v_sjrr_toggle_value = 0;
 0537:         else:
+0538:           sjrr_toggle_value = 1
      /*else*/ {
        __pyx_v_sjrr_toggle_value = 1;
      }
      __pyx_L29:;
+0539:         x.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), sjrr_toggle_value)
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_12);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_sjrr_toggle_value); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = NULL;
      __pyx_t_13 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_13 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_5, __pyx_t_3};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 4+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 539, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_5, __pyx_t_3};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 4+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 539, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      {
        __pyx_t_2 = PyTuple_New(4+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 539, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_self);
        __Pyx_GIVEREF(__pyx_v_self);
        PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_13, __pyx_v_self);
        __Pyx_INCREF(__pyx_v_expected_outflow_releases);
        __Pyx_GIVEREF(__pyx_v_expected_outflow_releases);
        PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_13, __pyx_v_expected_outflow_releases);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_13, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_13, __pyx_t_3);
        __pyx_t_5 = 0;
        __pyx_t_3 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 539, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0540:       else:
+0541:         x.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 0)
    /*else*/ {
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_int_12);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_13 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_13 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_2, __pyx_int_0};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 4+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 541, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_5, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_2, __pyx_int_0};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 4+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 541, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(4+__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 541, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_self);
        __Pyx_GIVEREF(__pyx_v_self);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_13, __pyx_v_self);
        __Pyx_INCREF(__pyx_v_expected_outflow_releases);
        __Pyx_GIVEREF(__pyx_v_expected_outflow_releases);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_13, __pyx_v_expected_outflow_releases);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_13, __pyx_t_2);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_13, __pyx_int_0);
        __pyx_t_2 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 541, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L28:;
 0542: 
 0543:     ##Code to calculate snow/flow regressions and save to file
 0544: 	############################################################################
+0545:     self.pineflat.find_release_func(self)
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 545, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0546:     self.kaweah.find_release_func(self)
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 546, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0547:     self.success.find_release_func(self)
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0548:     self.isabella.find_release_func(self)
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_8 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0549:     self.millerton.find_release_func(self)
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_find_release_func); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_7)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
    }
  }
  __pyx_t_8 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_v_self) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_v_self);
  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 0550:     # df_res_process = pd.DataFrame()
 0551:     # df_res_annual = pd.DataFrame()
 0552:     # for x in [self.pineflat, self.kaweah, self.success, self.isabella, self.millerton]:
 0553:     #   df_res_process['%s_rainfnf' % x.key] = pd.Series(x.rainflood_fnf, index = self.index)
 0554:     #   df_res_process['%s_snowfnf' % x.key] = pd.Series(x.snowflood_fnf, index = self.index)
 0555:     #   df_res_process['%s_raininf' % x.key] = pd.Series(x.rainflood_inf, index = self.index)
 0556:     #   df_res_process['%s_snowinf' % x.key] = pd.Series(x.snowflood_inf, index = self.index)
 0557:     #   df_res_process['%s_baseinf' % x.key] = pd.Series(x.baseline_inf, index = self.index)
 0558:     #   df_res_annual['%s_rainfnfstd' % x.key] = pd.Series(x.rainfnf_stds)
 0559:     #   df_res_annual['%s_snowfnfstd' % x.key] = pd.Series(x.snowfnf_stds)
 0560:     #   df_res_annual['%s_raininfstd' % x.key] = pd.Series(x.raininf_stds)
 0561:     #   df_res_annual['%s_snowinfstd' % x.key] = pd.Series(x.snowinf_stds)
 0562:     #   df_res_annual['%s_baseinfstd' % x.key] = pd.Series(x.baseinf_stds)
 0563:     # df_res_process.to_csv('calfews_src/data/input/temp_output/res_preprocess_daily.csv')
 0564:     # df_res_annual.to_csv('calfews_src/data/input/temp_output/res_presprocess_annual.csv')
 0565: 
+0566:   def initialize_water_districts(self, scenario = 'baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_15initialize_water_districts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_15initialize_water_districts = {"initialize_water_districts", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_15initialize_water_districts, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_15initialize_water_districts(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_water_districts (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scenario,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)((PyObject*)__pyx_n_u_baseline));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_water_districts") < 0)) __PYX_ERR(0, 566, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_scenario = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initialize_water_districts", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 566, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_water_districts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_14initialize_water_districts(__pyx_self, __pyx_v_self, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_14initialize_water_districts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_scenario) {
  PyObject *__pyx_v_districts_included = NULL;
  PyObject *__pyx_v_private_included = NULL;
  PyObject *__pyx_v_city_included = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__9)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_water_districts", 0);
  __Pyx_TraceCall("initialize_water_districts", __pyx_f[0], 566, 0, __PYX_ERR(0, 566, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_XDECREF(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_XDECREF(__pyx_t_28);
  __Pyx_XDECREF(__pyx_t_29);
  __Pyx_XDECREF(__pyx_t_30);
  __Pyx_XDECREF(__pyx_t_31);
  __Pyx_XDECREF(__pyx_t_32);
  __Pyx_XDECREF(__pyx_t_33);
  __Pyx_XDECREF(__pyx_t_34);
  __Pyx_XDECREF(__pyx_t_35);
  __Pyx_XDECREF(__pyx_t_36);
  __Pyx_XDECREF(__pyx_t_37);
  __Pyx_XDECREF(__pyx_t_38);
  __Pyx_XDECREF(__pyx_t_39);
  __Pyx_XDECREF(__pyx_t_40);
  __Pyx_XDECREF(__pyx_t_41);
  __Pyx_XDECREF(__pyx_t_42);
  __Pyx_XDECREF(__pyx_t_43);
  __Pyx_XDECREF(__pyx_t_44);
  __Pyx_XDECREF(__pyx_t_45);
  __Pyx_XDECREF(__pyx_t_46);
  __Pyx_XDECREF(__pyx_t_47);
  __Pyx_XDECREF(__pyx_t_48);
  __Pyx_XDECREF(__pyx_t_49);
  __Pyx_XDECREF(__pyx_t_50);
  __Pyx_XDECREF(__pyx_t_51);
  __Pyx_XDECREF(__pyx_t_52);
  __Pyx_XDECREF(__pyx_t_53);
  __Pyx_XDECREF(__pyx_t_54);
  __Pyx_XDECREF(__pyx_t_55);
  __Pyx_XDECREF(__pyx_t_56);
  __Pyx_XDECREF(__pyx_t_57);
  __Pyx_XDECREF(__pyx_t_58);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_water_districts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_districts_included);
  __Pyx_XDECREF(__pyx_v_private_included);
  __Pyx_XDECREF(__pyx_v_city_included);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__93 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_scenario, __pyx_n_s_districts_included, __pyx_n_s_private_included, __pyx_n_s_city_included, __pyx_n_s_x, __pyx_n_s_xx); if (unlikely(!__pyx_tuple__93)) __PYX_ERR(0, 566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__93);
  __Pyx_GIVEREF(__pyx_tuple__93);
  __pyx_codeobj__9 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__93, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_water_districts, 566, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__9)) __PYX_ERR(0, 566, __pyx_L1_error)
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_15initialize_water_districts, 0, __pyx_n_s_Model_initialize_water_districts, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__9)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__94);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_water_districts, __pyx_t_2) < 0) __PYX_ERR(0, 566, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_tuple__94 = PyTuple_Pack(1, ((PyObject*)__pyx_n_u_baseline)); if (unlikely(!__pyx_tuple__94)) __PYX_ERR(0, 566, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__94);
  __Pyx_GIVEREF(__pyx_tuple__94);
 0567:     ############################################################################
 0568:     ###District Initialization
 0569: 	############################################################################
 0570: 	##Kern County Water Agency Member Units
+0571:     self.berrenda = District(self, 'berrenda', 'BDM')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_berrenda);
  __Pyx_GIVEREF(__pyx_n_u_berrenda);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_berrenda);
  __Pyx_INCREF(__pyx_n_u_BDM);
  __Pyx_GIVEREF(__pyx_n_u_BDM);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_BDM);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_berrenda, __pyx_t_2) < 0) __PYX_ERR(0, 571, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0572:     self.belridge = District(self, 'belridge', 'BLR')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_belridge);
  __Pyx_GIVEREF(__pyx_n_u_belridge);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_belridge);
  __Pyx_INCREF(__pyx_n_u_BLR);
  __Pyx_GIVEREF(__pyx_n_u_BLR);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_BLR);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_belridge, __pyx_t_1) < 0) __PYX_ERR(0, 572, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0573:     self.buenavista = District(self, 'buenavista', 'BVA')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_buenavista);
  __Pyx_GIVEREF(__pyx_n_u_buenavista);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_buenavista);
  __Pyx_INCREF(__pyx_n_u_BVA);
  __Pyx_GIVEREF(__pyx_n_u_BVA);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_BVA);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_buenavista, __pyx_t_2) < 0) __PYX_ERR(0, 573, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0574:     self.cawelo = District(self, 'cawelo', 'CWO')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_cawelo);
  __Pyx_GIVEREF(__pyx_n_u_cawelo);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_cawelo);
  __Pyx_INCREF(__pyx_n_u_CWO);
  __Pyx_GIVEREF(__pyx_n_u_CWO);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CWO);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cawelo, __pyx_t_1) < 0) __PYX_ERR(0, 574, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0575:     self.henrymiller = District(self, 'henrymiller', 'HML')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_henrymiller);
  __Pyx_GIVEREF(__pyx_n_u_henrymiller);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_henrymiller);
  __Pyx_INCREF(__pyx_n_u_HML);
  __Pyx_GIVEREF(__pyx_n_u_HML);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_HML);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_henrymiller, __pyx_t_2) < 0) __PYX_ERR(0, 575, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0576:     self.ID4 = District(self, 'ID4', 'ID4')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_ID4);
  __Pyx_GIVEREF(__pyx_n_u_ID4);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_ID4);
  __Pyx_INCREF(__pyx_n_u_ID4);
  __Pyx_GIVEREF(__pyx_n_u_ID4);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ID4);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ID4, __pyx_t_1) < 0) __PYX_ERR(0, 576, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0577:     self.kerndelta = District(self, 'kerndelta', 'KND')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kerndelta);
  __Pyx_GIVEREF(__pyx_n_u_kerndelta);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kerndelta);
  __Pyx_INCREF(__pyx_n_u_KND);
  __Pyx_GIVEREF(__pyx_n_u_KND);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KND);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta, __pyx_t_2) < 0) __PYX_ERR(0, 577, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0578:     self.losthills = District(self, 'losthills', 'LHL')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_losthills);
  __Pyx_GIVEREF(__pyx_n_u_losthills);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_losthills);
  __Pyx_INCREF(__pyx_n_u_LHL);
  __Pyx_GIVEREF(__pyx_n_u_LHL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LHL);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_losthills, __pyx_t_1) < 0) __PYX_ERR(0, 578, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0579:     self.rosedale = District(self, 'rosedale', 'RRB')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_rosedale);
  __Pyx_GIVEREF(__pyx_n_u_rosedale);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_rosedale);
  __Pyx_INCREF(__pyx_n_u_RRB);
  __Pyx_GIVEREF(__pyx_n_u_RRB);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_RRB);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_rosedale, __pyx_t_2) < 0) __PYX_ERR(0, 579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0580:     self.semitropic = District(self, 'semitropic', 'SMI')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_semitropic);
  __Pyx_GIVEREF(__pyx_n_u_semitropic);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_semitropic);
  __Pyx_INCREF(__pyx_n_u_SMI);
  __Pyx_GIVEREF(__pyx_n_u_SMI);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SMI);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_semitropic, __pyx_t_1) < 0) __PYX_ERR(0, 580, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0581:     self.tehachapi = District(self, 'tehachapi', 'THC')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_tehachapi);
  __Pyx_GIVEREF(__pyx_n_u_tehachapi);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_tehachapi);
  __Pyx_INCREF(__pyx_n_u_THC);
  __Pyx_GIVEREF(__pyx_n_u_THC);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_THC);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tehachapi, __pyx_t_2) < 0) __PYX_ERR(0, 581, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0582:     self.tejon = District(self, 'tejon', 'TJC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_tejon);
  __Pyx_GIVEREF(__pyx_n_u_tejon);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tejon);
  __Pyx_INCREF(__pyx_n_u_TJC);
  __Pyx_GIVEREF(__pyx_n_u_TJC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TJC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tejon, __pyx_t_1) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0583:     self.westkern = District(self, 'westkern', 'WKN')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_westkern);
  __Pyx_GIVEREF(__pyx_n_u_westkern);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_westkern);
  __Pyx_INCREF(__pyx_n_u_WKN);
  __Pyx_GIVEREF(__pyx_n_u_WKN);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WKN);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_westkern, __pyx_t_2) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0584:     self.wheeler = District(self, 'wheeler', 'WRM')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_wheeler);
  __Pyx_GIVEREF(__pyx_n_u_wheeler);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_wheeler);
  __Pyx_INCREF(__pyx_n_u_WRM);
  __Pyx_GIVEREF(__pyx_n_u_WRM);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WRM);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_wheeler, __pyx_t_1) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0585:     self.kcwa = District(self, 'kcwa', 'KCWA')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kcwa);
  __Pyx_GIVEREF(__pyx_n_u_kcwa);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kcwa);
  __Pyx_INCREF(__pyx_n_u_KCWA);
  __Pyx_GIVEREF(__pyx_n_u_KCWA);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KCWA);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kcwa, __pyx_t_2) < 0) __PYX_ERR(0, 585, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0586: 	##Other Kern County
+0587:     self.bakersfield = District(self, 'bakersfield', 'COB')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_bakersfield);
  __Pyx_GIVEREF(__pyx_n_u_bakersfield);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_bakersfield);
  __Pyx_INCREF(__pyx_n_u_COB);
  __Pyx_GIVEREF(__pyx_n_u_COB);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_COB);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_bakersfield, __pyx_t_1) < 0) __PYX_ERR(0, 587, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0588:     self.northkern = District(self, 'northkern', 'NKN')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_northkern);
  __Pyx_GIVEREF(__pyx_n_u_northkern);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_northkern);
  __Pyx_INCREF(__pyx_n_u_NKN);
  __Pyx_GIVEREF(__pyx_n_u_NKN);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_NKN);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_northkern, __pyx_t_2) < 0) __PYX_ERR(0, 588, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0589:     ##Friant Kern Contractors
+0590:     self.arvin = District(self, 'arvin', 'ARV')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_arvin);
  __Pyx_GIVEREF(__pyx_n_u_arvin);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_arvin);
  __Pyx_INCREF(__pyx_n_u_ARV);
  __Pyx_GIVEREF(__pyx_n_u_ARV);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ARV);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 590, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_arvin, __pyx_t_1) < 0) __PYX_ERR(0, 590, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0591:     self.pixley = District(self, 'pixley', 'PIX')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_pixley);
  __Pyx_GIVEREF(__pyx_n_u_pixley);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_pixley);
  __Pyx_INCREF(__pyx_n_u_PIX);
  __Pyx_GIVEREF(__pyx_n_u_PIX);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_PIX);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pixley, __pyx_t_2) < 0) __PYX_ERR(0, 591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0592:     self.delano = District(self, 'delano', 'DLE')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_delano);
  __Pyx_GIVEREF(__pyx_n_u_delano);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_delano);
  __Pyx_INCREF(__pyx_n_u_DLE);
  __Pyx_GIVEREF(__pyx_n_u_DLE);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_DLE);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_delano, __pyx_t_1) < 0) __PYX_ERR(0, 592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0593:     self.exeter = District(self, 'exeter', 'EXE')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_exeter);
  __Pyx_GIVEREF(__pyx_n_u_exeter);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_exeter);
  __Pyx_INCREF(__pyx_n_u_EXE);
  __Pyx_GIVEREF(__pyx_n_u_EXE);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_EXE);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_exeter, __pyx_t_2) < 0) __PYX_ERR(0, 593, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0594:     self.kerntulare = District(self, 'kerntulare', 'KRT')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kerntulare);
  __Pyx_GIVEREF(__pyx_n_u_kerntulare);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kerntulare);
  __Pyx_INCREF(__pyx_n_u_KRT);
  __Pyx_GIVEREF(__pyx_n_u_KRT);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KRT);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 594, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kerntulare, __pyx_t_1) < 0) __PYX_ERR(0, 594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0595:     self.lindmore = District(self, 'lindmore', 'LND')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_lindmore);
  __Pyx_GIVEREF(__pyx_n_u_lindmore);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_lindmore);
  __Pyx_INCREF(__pyx_n_u_LND);
  __Pyx_GIVEREF(__pyx_n_u_LND);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_LND);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lindmore, __pyx_t_2) < 0) __PYX_ERR(0, 595, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0596:     self.lindsay = District(self, 'lindsay', 'LDS')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_lindsay);
  __Pyx_GIVEREF(__pyx_n_u_lindsay);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lindsay);
  __Pyx_INCREF(__pyx_n_u_LDS);
  __Pyx_GIVEREF(__pyx_n_u_LDS);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LDS);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lindsay, __pyx_t_1) < 0) __PYX_ERR(0, 596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0597:     if (scenario == 'baseline'):
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 597, __pyx_L1_error)
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+0598:       self.lowertule = District(self, 'lowertule', 'LWT')
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_self);
    __Pyx_GIVEREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
    __Pyx_INCREF(__pyx_n_u_lowertule);
    __Pyx_GIVEREF(__pyx_n_u_lowertule);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_lowertule);
    __Pyx_INCREF(__pyx_n_u_LWT);
    __Pyx_GIVEREF(__pyx_n_u_LWT);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_LWT);
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lowertule, __pyx_t_2) < 0) __PYX_ERR(0, 598, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0599:     elif (scenario['LWT'] == 'baseline'):
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_LWT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 599, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 599, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+0600:       self.lowertule = District(self, 'lowertule', 'LWT')
    __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_self);
    __Pyx_GIVEREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
    __Pyx_INCREF(__pyx_n_u_lowertule);
    __Pyx_GIVEREF(__pyx_n_u_lowertule);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lowertule);
    __Pyx_INCREF(__pyx_n_u_LWT);
    __Pyx_GIVEREF(__pyx_n_u_LWT);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LWT);
    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lowertule, __pyx_t_1) < 0) __PYX_ERR(0, 600, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0601:     else:
+0602:       self.lowertule = District(self, 'lowertule', 'LWT', scenario['LWT'])
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_LWT); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 602, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_v_self);
    __Pyx_GIVEREF(__pyx_v_self);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
    __Pyx_INCREF(__pyx_n_u_lowertule);
    __Pyx_GIVEREF(__pyx_n_u_lowertule);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_lowertule);
    __Pyx_INCREF(__pyx_n_u_LWT);
    __Pyx_GIVEREF(__pyx_n_u_LWT);
    PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_LWT);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 602, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lowertule, __pyx_t_1) < 0) __PYX_ERR(0, 602, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
+0603:     self.porterville = District(self, 'porterville', 'PRT')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_porterville);
  __Pyx_GIVEREF(__pyx_n_u_porterville);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_porterville);
  __Pyx_INCREF(__pyx_n_u_PRT);
  __Pyx_GIVEREF(__pyx_n_u_PRT);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_PRT);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_porterville, __pyx_t_2) < 0) __PYX_ERR(0, 603, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0604:     self.saucelito = District(self, 'saucelito', 'SAU')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_saucelito);
  __Pyx_GIVEREF(__pyx_n_u_saucelito);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_saucelito);
  __Pyx_INCREF(__pyx_n_u_SAU);
  __Pyx_GIVEREF(__pyx_n_u_SAU);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SAU);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 604, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_saucelito, __pyx_t_1) < 0) __PYX_ERR(0, 604, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0605:     self.shaffer = District(self, 'shaffer', 'SFW')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_shaffer);
  __Pyx_GIVEREF(__pyx_n_u_shaffer);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_shaffer);
  __Pyx_INCREF(__pyx_n_u_SFW);
  __Pyx_GIVEREF(__pyx_n_u_SFW);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SFW);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 605, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_shaffer, __pyx_t_2) < 0) __PYX_ERR(0, 605, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0606:     self.sosanjoaquin = District(self, 'sosanjoaquin', 'SSJ')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_sosanjoaquin);
  __Pyx_GIVEREF(__pyx_n_u_sosanjoaquin);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_sosanjoaquin);
  __Pyx_INCREF(__pyx_n_u_SSJ);
  __Pyx_GIVEREF(__pyx_n_u_SSJ);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SSJ);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 606, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sosanjoaquin, __pyx_t_1) < 0) __PYX_ERR(0, 606, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0607:     self.teapot = District(self, 'teapot', 'TPD')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_teapot);
  __Pyx_GIVEREF(__pyx_n_u_teapot);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_teapot);
  __Pyx_INCREF(__pyx_n_u_TPD);
  __Pyx_GIVEREF(__pyx_n_u_TPD);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_TPD);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_teapot, __pyx_t_2) < 0) __PYX_ERR(0, 607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0608:     self.terra = District(self, 'terra', 'TBA')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_terra);
  __Pyx_GIVEREF(__pyx_n_u_terra);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_terra);
  __Pyx_INCREF(__pyx_n_u_TBA);
  __Pyx_GIVEREF(__pyx_n_u_TBA);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TBA);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_terra, __pyx_t_1) < 0) __PYX_ERR(0, 608, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0609:     self.tulare = District(self, 'tulare', 'TUL')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_tulare);
  __Pyx_GIVEREF(__pyx_n_u_tulare);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_tulare);
  __Pyx_INCREF(__pyx_n_u_TUL);
  __Pyx_GIVEREF(__pyx_n_u_TUL);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_TUL);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tulare, __pyx_t_2) < 0) __PYX_ERR(0, 609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0610:     self.fresno = District(self, 'fresno', 'COF')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_fresno);
  __Pyx_GIVEREF(__pyx_n_u_fresno);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_fresno);
  __Pyx_INCREF(__pyx_n_u_COF);
  __Pyx_GIVEREF(__pyx_n_u_COF);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_COF);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 610, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fresno, __pyx_t_1) < 0) __PYX_ERR(0, 610, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0611:     self.fresnoid = District(self, 'fresnoid', 'FRS')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_fresnoid);
  __Pyx_GIVEREF(__pyx_n_u_fresnoid);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_fresnoid);
  __Pyx_INCREF(__pyx_n_u_FRS);
  __Pyx_GIVEREF(__pyx_n_u_FRS);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_FRS);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fresnoid, __pyx_t_2) < 0) __PYX_ERR(0, 611, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0612:     ##Canal Boundaries
+0613:     self.socal = District(self, 'socal', 'SOC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_socal);
  __Pyx_GIVEREF(__pyx_n_u_socal);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_socal);
  __Pyx_INCREF(__pyx_n_u_SOC);
  __Pyx_GIVEREF(__pyx_n_u_SOC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SOC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 613, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_socal, __pyx_t_1) < 0) __PYX_ERR(0, 613, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0614:     self.southbay = District(self, 'southbay', 'SOB')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_southbay);
  __Pyx_GIVEREF(__pyx_n_u_southbay);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_southbay);
  __Pyx_INCREF(__pyx_n_u_SOB);
  __Pyx_GIVEREF(__pyx_n_u_SOB);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SOB);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_southbay, __pyx_t_2) < 0) __PYX_ERR(0, 614, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0615:     self.centralcoast = District(self, 'centralcoast', 'CCA')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_centralcoast);
  __Pyx_GIVEREF(__pyx_n_u_centralcoast);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_centralcoast);
  __Pyx_INCREF(__pyx_n_u_CCA);
  __Pyx_GIVEREF(__pyx_n_u_CCA);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CCA);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast, __pyx_t_1) < 0) __PYX_ERR(0, 615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0616:     ##demands at canal boundaries are taken from observed pumping into canal brannch
 0617: 
 0618:     ##Other Agencies
+0619:     self.dudleyridge = District(self, 'dudleyridge', 'DLR')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_dudleyridge);
  __Pyx_GIVEREF(__pyx_n_u_dudleyridge);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_dudleyridge);
  __Pyx_INCREF(__pyx_n_u_DLR);
  __Pyx_GIVEREF(__pyx_n_u_DLR);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DLR);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_dudleyridge, __pyx_t_2) < 0) __PYX_ERR(0, 619, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0620:     self.tularelake = District(self, 'tularelake', 'TLB')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_tularelake);
  __Pyx_GIVEREF(__pyx_n_u_tularelake);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tularelake);
  __Pyx_INCREF(__pyx_n_u_TLB);
  __Pyx_GIVEREF(__pyx_n_u_TLB);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TLB);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tularelake, __pyx_t_1) < 0) __PYX_ERR(0, 620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0621:     self.kaweahdelta = District(self, 'kaweahdelta', 'KWD')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kaweahdelta);
  __Pyx_GIVEREF(__pyx_n_u_kaweahdelta);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kaweahdelta);
  __Pyx_INCREF(__pyx_n_u_KWD);
  __Pyx_GIVEREF(__pyx_n_u_KWD);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KWD);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 621, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kaweahdelta, __pyx_t_2) < 0) __PYX_ERR(0, 621, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0622:     self.westlands = District(self, 'westlands', 'WSL')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_westlands);
  __Pyx_GIVEREF(__pyx_n_u_westlands);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_westlands);
  __Pyx_INCREF(__pyx_n_u_WSL);
  __Pyx_GIVEREF(__pyx_n_u_WSL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WSL);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_westlands, __pyx_t_1) < 0) __PYX_ERR(0, 622, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0623:     self.sanluiswater = District(self, 'sanluiswater', 'SNL')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_sanluiswater);
  __Pyx_GIVEREF(__pyx_n_u_sanluiswater);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_sanluiswater);
  __Pyx_INCREF(__pyx_n_u_SNL);
  __Pyx_GIVEREF(__pyx_n_u_SNL);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SNL);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_sanluiswater, __pyx_t_2) < 0) __PYX_ERR(0, 623, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0624:     self.panoche = District(self, 'panoche', 'PNC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_panoche);
  __Pyx_GIVEREF(__pyx_n_u_panoche);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_panoche);
  __Pyx_INCREF(__pyx_n_u_PNC);
  __Pyx_GIVEREF(__pyx_n_u_PNC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PNC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_panoche, __pyx_t_1) < 0) __PYX_ERR(0, 624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0625:     self.delpuerto = District(self, 'delpuerto', 'DLP')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_delpuerto);
  __Pyx_GIVEREF(__pyx_n_u_delpuerto);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_delpuerto);
  __Pyx_INCREF(__pyx_n_u_DLP);
  __Pyx_GIVEREF(__pyx_n_u_DLP);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_DLP);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_delpuerto, __pyx_t_2) < 0) __PYX_ERR(0, 625, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0626:     self.chowchilla = District(self, 'chowchilla', 'CWC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_chowchilla);
  __Pyx_GIVEREF(__pyx_n_u_chowchilla);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_chowchilla);
  __Pyx_INCREF(__pyx_n_u_CWC);
  __Pyx_GIVEREF(__pyx_n_u_CWC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CWC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_chowchilla, __pyx_t_1) < 0) __PYX_ERR(0, 626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0627:     self.maderairr = District(self, 'maderairr', 'MAD')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_maderairr);
  __Pyx_GIVEREF(__pyx_n_u_maderairr);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_maderairr);
  __Pyx_INCREF(__pyx_n_u_MAD);
  __Pyx_GIVEREF(__pyx_n_u_MAD);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_MAD);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_maderairr, __pyx_t_2) < 0) __PYX_ERR(0, 627, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0628:     self.othertule = District(self, 'othertule', 'OTL')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_othertule);
  __Pyx_GIVEREF(__pyx_n_u_othertule);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_othertule);
  __Pyx_INCREF(__pyx_n_u_OTL);
  __Pyx_GIVEREF(__pyx_n_u_OTL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OTL);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_othertule, __pyx_t_1) < 0) __PYX_ERR(0, 628, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0629:     self.otherkaweah = District(self, 'otherkaweah', 'OKW')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_otherkaweah);
  __Pyx_GIVEREF(__pyx_n_u_otherkaweah);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_otherkaweah);
  __Pyx_INCREF(__pyx_n_u_OKW);
  __Pyx_GIVEREF(__pyx_n_u_OKW);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OKW);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_otherkaweah, __pyx_t_2) < 0) __PYX_ERR(0, 629, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0630:     self.otherfriant = District(self, 'otherfriant', 'OFK')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_otherfriant);
  __Pyx_GIVEREF(__pyx_n_u_otherfriant);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherfriant);
  __Pyx_INCREF(__pyx_n_u_OFK);
  __Pyx_GIVEREF(__pyx_n_u_OFK);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OFK);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_otherfriant, __pyx_t_1) < 0) __PYX_ERR(0, 630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0631:     self.othercvp = District(self, 'othercvp', 'OCD')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_othercvp);
  __Pyx_GIVEREF(__pyx_n_u_othercvp);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_othercvp);
  __Pyx_INCREF(__pyx_n_u_OCD);
  __Pyx_GIVEREF(__pyx_n_u_OCD);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OCD);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_othercvp, __pyx_t_2) < 0) __PYX_ERR(0, 631, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0632:     self.otherexchange = District(self, 'otherexchange', 'OEX')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_otherexchange);
  __Pyx_GIVEREF(__pyx_n_u_otherexchange);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherexchange);
  __Pyx_INCREF(__pyx_n_u_OEX);
  __Pyx_GIVEREF(__pyx_n_u_OEX);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OEX);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_otherexchange, __pyx_t_1) < 0) __PYX_ERR(0, 632, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0633:     self.othercrossvalley = District(self, 'othercrossvalley', 'OXV')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_othercrossvalley);
  __Pyx_GIVEREF(__pyx_n_u_othercrossvalley);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_othercrossvalley);
  __Pyx_INCREF(__pyx_n_u_OXV);
  __Pyx_GIVEREF(__pyx_n_u_OXV);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_OXV);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_othercrossvalley, __pyx_t_2) < 0) __PYX_ERR(0, 633, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0634:     self.otherswp = District(self, 'otherswp', 'OSW')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_otherswp);
  __Pyx_GIVEREF(__pyx_n_u_otherswp);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_otherswp);
  __Pyx_INCREF(__pyx_n_u_OSW);
  __Pyx_GIVEREF(__pyx_n_u_OSW);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_OSW);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 634, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_otherswp, __pyx_t_1) < 0) __PYX_ERR(0, 634, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0635:     self.consolidated = District(self, 'consolidated', 'CNS')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_consolidated);
  __Pyx_GIVEREF(__pyx_n_u_consolidated);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_consolidated);
  __Pyx_INCREF(__pyx_n_u_CNS);
  __Pyx_GIVEREF(__pyx_n_u_CNS);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_CNS);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_consolidated, __pyx_t_2) < 0) __PYX_ERR(0, 635, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0636:     self.alta = District(self, 'alta', 'ALT')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_alta);
  __Pyx_GIVEREF(__pyx_n_u_alta);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_alta);
  __Pyx_INCREF(__pyx_n_u_ALT);
  __Pyx_GIVEREF(__pyx_n_u_ALT);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_ALT);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_alta, __pyx_t_1) < 0) __PYX_ERR(0, 636, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0637:     self.krwa = District(self, 'krwa', 'KRWA')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_krwa);
  __Pyx_GIVEREF(__pyx_n_u_krwa);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_krwa);
  __Pyx_INCREF(__pyx_n_u_KRWA);
  __Pyx_GIVEREF(__pyx_n_u_KRWA);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KRWA);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11district_cy_District), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_krwa, __pyx_t_2) < 0) __PYX_ERR(0, 637, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0638:     # self.krwa.turnback_use = 0
 0639: 
 0640:     ##Private water users
+0641:     self.wonderful = Private(self, 'wonderful', 'WON', 1.0)
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_wonderful);
  __Pyx_GIVEREF(__pyx_n_u_wonderful);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_wonderful);
  __Pyx_INCREF(__pyx_n_u_WON);
  __Pyx_GIVEREF(__pyx_n_u_WON);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_WON);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_float_1_0);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_10private_cy_Private), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 641, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_wonderful, __pyx_t_1) < 0) __PYX_ERR(0, 641, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0642:     self.metropolitan = Private(self, 'metropolitan', 'MET', 1.0)
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_metropolitan);
  __Pyx_GIVEREF(__pyx_n_u_metropolitan);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_metropolitan);
  __Pyx_INCREF(__pyx_n_u_MET);
  __Pyx_GIVEREF(__pyx_n_u_MET);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_MET);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_float_1_0);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_10private_cy_Private), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan, __pyx_t_2) < 0) __PYX_ERR(0, 642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0643:     self.castaic = Private(self, 'castaic', 'CTL', 1.0)
  __pyx_t_2 = PyTuple_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_castaic);
  __Pyx_GIVEREF(__pyx_n_u_castaic);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_castaic);
  __Pyx_INCREF(__pyx_n_u_CTL);
  __Pyx_GIVEREF(__pyx_n_u_CTL);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CTL);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  PyTuple_SET_ITEM(__pyx_t_2, 3, __pyx_float_1_0);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_10private_cy_Private), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 643, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_castaic, __pyx_t_1) < 0) __PYX_ERR(0, 643, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0644:     self.coachella = Private(self, 'coachella', 'CCH', 1.0)
  __pyx_t_1 = PyTuple_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_coachella);
  __Pyx_GIVEREF(__pyx_n_u_coachella);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_coachella);
  __Pyx_INCREF(__pyx_n_u_CCH);
  __Pyx_GIVEREF(__pyx_n_u_CCH);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_CCH);
  __Pyx_INCREF(__pyx_float_1_0);
  __Pyx_GIVEREF(__pyx_float_1_0);
  PyTuple_SET_ITEM(__pyx_t_1, 3, __pyx_float_1_0);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_10private_cy_Private), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 644, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_coachella, __pyx_t_2) < 0) __PYX_ERR(0, 644, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0645: 
 0646: 	##List of all intialized districts for looping
+0647:     self.district_list = [self.berrenda, self.belridge, self.buenavista, self.cawelo, self.henrymiller, self.ID4, self.kerndelta, self.losthills, self.rosedale, self.semitropic, self.tehachapi, self.tejon, self.westkern, self.wheeler, self.kcwa, self.bakersfield, self.northkern, self.arvin, self.delano, self.pixley, self.exeter, self.kerntulare, self.lindmore, self.lindsay, self.lowertule, self.porterville, self.saucelito, self.shaffer, self.sosanjoaquin, self.teapot, self.terra, self.tulare, self.fresno, self.fresnoid, self.socal, self.southbay, self.centralcoast, self.dudleyridge, self.tularelake, self.westlands, self.chowchilla, self.maderairr, self.othertule, self.otherkaweah, self.otherfriant, self.othercvp, self.otherexchange, self.othercrossvalley, self.otherswp, self.consolidated, self.alta, self.krwa, self.kaweahdelta, self.sanluiswater, self.panoche, self.delpuerto]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cawelo); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_henrymiller); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ID4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_losthills); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tehachapi); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tejon); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westkern); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wheeler); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kcwa); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bakersfield); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkern); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_arvin); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delano); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pixley); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exeter); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerntulare); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lindmore); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lindsay); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_25);
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lowertule); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_porterville); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_saucelito); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_28);
  __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shaffer); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_29);
  __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sosanjoaquin); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_30);
  __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_teapot); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_31);
  __pyx_t_32 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_terra); if (unlikely(!__pyx_t_32)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_32);
  __pyx_t_33 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tulare); if (unlikely(!__pyx_t_33)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_33);
  __pyx_t_34 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fresno); if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_34);
  __pyx_t_35 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fresnoid); if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_35);
  __pyx_t_36 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_36)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_36);
  __pyx_t_37 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_37)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_37);
  __pyx_t_38 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_38);
  __pyx_t_39 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dudleyridge); if (unlikely(!__pyx_t_39)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_39);
  __pyx_t_40 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tularelake); if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_40);
  __pyx_t_41 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westlands); if (unlikely(!__pyx_t_41)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_41);
  __pyx_t_42 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_chowchilla); if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_42);
  __pyx_t_43 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_maderairr); if (unlikely(!__pyx_t_43)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_43);
  __pyx_t_44 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othertule); if (unlikely(!__pyx_t_44)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_44);
  __pyx_t_45 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherkaweah); if (unlikely(!__pyx_t_45)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_45);
  __pyx_t_46 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherfriant); if (unlikely(!__pyx_t_46)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_46);
  __pyx_t_47 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othercvp); if (unlikely(!__pyx_t_47)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_47);
  __pyx_t_48 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherexchange); if (unlikely(!__pyx_t_48)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_48);
  __pyx_t_49 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othercrossvalley); if (unlikely(!__pyx_t_49)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_49);
  __pyx_t_50 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherswp); if (unlikely(!__pyx_t_50)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_50);
  __pyx_t_51 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_consolidated); if (unlikely(!__pyx_t_51)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_51);
  __pyx_t_52 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_alta); if (unlikely(!__pyx_t_52)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_52);
  __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_krwa); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_53);
  __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahdelta); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_54);
  __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluiswater); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_55);
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_panoche); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delpuerto); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_57);
  __pyx_t_58 = PyList_New(56); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_58, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_58, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_58, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_58, 3, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_58, 4, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_58, 5, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_58, 6, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_58, 7, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_58, 8, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_58, 9, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_58, 10, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_58, 11, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_58, 12, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_58, 13, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_58, 14, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_58, 15, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_58, 16, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_58, 17, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_58, 18, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_21);
  PyList_SET_ITEM(__pyx_t_58, 19, __pyx_t_21);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_58, 20, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_23);
  PyList_SET_ITEM(__pyx_t_58, 21, __pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_24);
  PyList_SET_ITEM(__pyx_t_58, 22, __pyx_t_24);
  __Pyx_GIVEREF(__pyx_t_25);
  PyList_SET_ITEM(__pyx_t_58, 23, __pyx_t_25);
  __Pyx_GIVEREF(__pyx_t_26);
  PyList_SET_ITEM(__pyx_t_58, 24, __pyx_t_26);
  __Pyx_GIVEREF(__pyx_t_27);
  PyList_SET_ITEM(__pyx_t_58, 25, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_28);
  PyList_SET_ITEM(__pyx_t_58, 26, __pyx_t_28);
  __Pyx_GIVEREF(__pyx_t_29);
  PyList_SET_ITEM(__pyx_t_58, 27, __pyx_t_29);
  __Pyx_GIVEREF(__pyx_t_30);
  PyList_SET_ITEM(__pyx_t_58, 28, __pyx_t_30);
  __Pyx_GIVEREF(__pyx_t_31);
  PyList_SET_ITEM(__pyx_t_58, 29, __pyx_t_31);
  __Pyx_GIVEREF(__pyx_t_32);
  PyList_SET_ITEM(__pyx_t_58, 30, __pyx_t_32);
  __Pyx_GIVEREF(__pyx_t_33);
  PyList_SET_ITEM(__pyx_t_58, 31, __pyx_t_33);
  __Pyx_GIVEREF(__pyx_t_34);
  PyList_SET_ITEM(__pyx_t_58, 32, __pyx_t_34);
  __Pyx_GIVEREF(__pyx_t_35);
  PyList_SET_ITEM(__pyx_t_58, 33, __pyx_t_35);
  __Pyx_GIVEREF(__pyx_t_36);
  PyList_SET_ITEM(__pyx_t_58, 34, __pyx_t_36);
  __Pyx_GIVEREF(__pyx_t_37);
  PyList_SET_ITEM(__pyx_t_58, 35, __pyx_t_37);
  __Pyx_GIVEREF(__pyx_t_38);
  PyList_SET_ITEM(__pyx_t_58, 36, __pyx_t_38);
  __Pyx_GIVEREF(__pyx_t_39);
  PyList_SET_ITEM(__pyx_t_58, 37, __pyx_t_39);
  __Pyx_GIVEREF(__pyx_t_40);
  PyList_SET_ITEM(__pyx_t_58, 38, __pyx_t_40);
  __Pyx_GIVEREF(__pyx_t_41);
  PyList_SET_ITEM(__pyx_t_58, 39, __pyx_t_41);
  __Pyx_GIVEREF(__pyx_t_42);
  PyList_SET_ITEM(__pyx_t_58, 40, __pyx_t_42);
  __Pyx_GIVEREF(__pyx_t_43);
  PyList_SET_ITEM(__pyx_t_58, 41, __pyx_t_43);
  __Pyx_GIVEREF(__pyx_t_44);
  PyList_SET_ITEM(__pyx_t_58, 42, __pyx_t_44);
  __Pyx_GIVEREF(__pyx_t_45);
  PyList_SET_ITEM(__pyx_t_58, 43, __pyx_t_45);
  __Pyx_GIVEREF(__pyx_t_46);
  PyList_SET_ITEM(__pyx_t_58, 44, __pyx_t_46);
  __Pyx_GIVEREF(__pyx_t_47);
  PyList_SET_ITEM(__pyx_t_58, 45, __pyx_t_47);
  __Pyx_GIVEREF(__pyx_t_48);
  PyList_SET_ITEM(__pyx_t_58, 46, __pyx_t_48);
  __Pyx_GIVEREF(__pyx_t_49);
  PyList_SET_ITEM(__pyx_t_58, 47, __pyx_t_49);
  __Pyx_GIVEREF(__pyx_t_50);
  PyList_SET_ITEM(__pyx_t_58, 48, __pyx_t_50);
  __Pyx_GIVEREF(__pyx_t_51);
  PyList_SET_ITEM(__pyx_t_58, 49, __pyx_t_51);
  __Pyx_GIVEREF(__pyx_t_52);
  PyList_SET_ITEM(__pyx_t_58, 50, __pyx_t_52);
  __Pyx_GIVEREF(__pyx_t_53);
  PyList_SET_ITEM(__pyx_t_58, 51, __pyx_t_53);
  __Pyx_GIVEREF(__pyx_t_54);
  PyList_SET_ITEM(__pyx_t_58, 52, __pyx_t_54);
  __Pyx_GIVEREF(__pyx_t_55);
  PyList_SET_ITEM(__pyx_t_58, 53, __pyx_t_55);
  __Pyx_GIVEREF(__pyx_t_56);
  PyList_SET_ITEM(__pyx_t_58, 54, __pyx_t_56);
  __Pyx_GIVEREF(__pyx_t_57);
  PyList_SET_ITEM(__pyx_t_58, 55, __pyx_t_57);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  __pyx_t_14 = 0;
  __pyx_t_15 = 0;
  __pyx_t_16 = 0;
  __pyx_t_17 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_20 = 0;
  __pyx_t_21 = 0;
  __pyx_t_22 = 0;
  __pyx_t_23 = 0;
  __pyx_t_24 = 0;
  __pyx_t_25 = 0;
  __pyx_t_26 = 0;
  __pyx_t_27 = 0;
  __pyx_t_28 = 0;
  __pyx_t_29 = 0;
  __pyx_t_30 = 0;
  __pyx_t_31 = 0;
  __pyx_t_32 = 0;
  __pyx_t_33 = 0;
  __pyx_t_34 = 0;
  __pyx_t_35 = 0;
  __pyx_t_36 = 0;
  __pyx_t_37 = 0;
  __pyx_t_38 = 0;
  __pyx_t_39 = 0;
  __pyx_t_40 = 0;
  __pyx_t_41 = 0;
  __pyx_t_42 = 0;
  __pyx_t_43 = 0;
  __pyx_t_44 = 0;
  __pyx_t_45 = 0;
  __pyx_t_46 = 0;
  __pyx_t_47 = 0;
  __pyx_t_48 = 0;
  __pyx_t_49 = 0;
  __pyx_t_50 = 0;
  __pyx_t_51 = 0;
  __pyx_t_52 = 0;
  __pyx_t_53 = 0;
  __pyx_t_54 = 0;
  __pyx_t_55 = 0;
  __pyx_t_56 = 0;
  __pyx_t_57 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_district_list, __pyx_t_58) < 0) __PYX_ERR(0, 647, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
 0648:     #list of all california aqueduct branch urban users (their demands are generated from pumping data - different than other district objects)
+0649:     self.urban_list = [self.socal, self.centralcoast, self.southbay]
  __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_57);
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __pyx_t_55 = PyList_New(3); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 649, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_55);
  __Pyx_GIVEREF(__pyx_t_58);
  PyList_SET_ITEM(__pyx_t_55, 0, __pyx_t_58);
  __Pyx_GIVEREF(__pyx_t_57);
  PyList_SET_ITEM(__pyx_t_55, 1, __pyx_t_57);
  __Pyx_GIVEREF(__pyx_t_56);
  PyList_SET_ITEM(__pyx_t_55, 2, __pyx_t_56);
  __pyx_t_58 = 0;
  __pyx_t_57 = 0;
  __pyx_t_56 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_urban_list, __pyx_t_55) < 0) __PYX_ERR(0, 649, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
+0650:     self.private_list = [self.wonderful]
  __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wonderful); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_55);
  __pyx_t_56 = PyList_New(1); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __Pyx_GIVEREF(__pyx_t_55);
  PyList_SET_ITEM(__pyx_t_56, 0, __pyx_t_55);
  __pyx_t_55 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_private_list, __pyx_t_56) < 0) __PYX_ERR(0, 650, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0651:     self.city_list = [self.metropolitan, self.castaic, self.coachella]
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_castaic); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_55);
  __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_coachella); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_57);
  __pyx_t_58 = PyList_New(3); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  __Pyx_GIVEREF(__pyx_t_56);
  PyList_SET_ITEM(__pyx_t_58, 0, __pyx_t_56);
  __Pyx_GIVEREF(__pyx_t_55);
  PyList_SET_ITEM(__pyx_t_58, 1, __pyx_t_55);
  __Pyx_GIVEREF(__pyx_t_57);
  PyList_SET_ITEM(__pyx_t_58, 2, __pyx_t_57);
  __pyx_t_56 = 0;
  __pyx_t_55 = 0;
  __pyx_t_57 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_city_list, __pyx_t_58) < 0) __PYX_ERR(0, 651, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
 0652: 
 0653:     ##District Keys - dictionary to be able to call the member from its key
+0654:     self.district_keys = {}
  __pyx_t_58 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_district_keys, __pyx_t_58) < 0) __PYX_ERR(0, 654, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0655:     self.district_keys_len = {}
  __pyx_t_58 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len, __pyx_t_58) < 0) __PYX_ERR(0, 655, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0656:     for districts_included in self.district_list:
  __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 656, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  if (likely(PyList_CheckExact(__pyx_t_58)) || PyTuple_CheckExact(__pyx_t_58)) {
    __pyx_t_57 = __pyx_t_58; __Pyx_INCREF(__pyx_t_57); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_57 = PyObject_GetIter(__pyx_t_58); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 656, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_60 = Py_TYPE(__pyx_t_57)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 656, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_57))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_57)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_58 = PyList_GET_ITEM(__pyx_t_57, __pyx_t_59); __Pyx_INCREF(__pyx_t_58); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 656, __pyx_L1_error)
        #else
        __pyx_t_58 = PySequence_ITEM(__pyx_t_57, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_58);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_57)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_58 = PyTuple_GET_ITEM(__pyx_t_57, __pyx_t_59); __Pyx_INCREF(__pyx_t_58); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 656, __pyx_L1_error)
        #else
        __pyx_t_58 = PySequence_ITEM(__pyx_t_57, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_58);
        #endif
      }
    } else {
      __pyx_t_58 = __pyx_t_60(__pyx_t_57);
      if (unlikely(!__pyx_t_58)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 656, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_58);
    }
    __Pyx_XDECREF_SET(__pyx_v_districts_included, __pyx_t_58);
    __pyx_t_58 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
+0657:       self.district_keys[districts_included.key] = districts_included
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_districts_included, __pyx_n_s_key); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    if (unlikely(PyObject_SetItem(__pyx_t_58, __pyx_t_55, __pyx_v_districts_included) < 0)) __PYX_ERR(0, 657, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
+0658:       self.district_keys_len[districts_included.key] = len(districts_included)
    __pyx_t_61 = PyObject_Length(__pyx_v_districts_included); if (unlikely(__pyx_t_61 == ((Py_ssize_t)-1))) __PYX_ERR(0, 658, __pyx_L1_error)
    __pyx_t_55 = PyInt_FromSsize_t(__pyx_t_61); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_districts_included, __pyx_n_s_key); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    if (unlikely(PyObject_SetItem(__pyx_t_58, __pyx_t_56, __pyx_t_55) < 0)) __PYX_ERR(0, 658, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
    __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
+0659:     for private_included in self.private_list:
  __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 659, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_57);
  if (likely(PyList_CheckExact(__pyx_t_57)) || PyTuple_CheckExact(__pyx_t_57)) {
    __pyx_t_55 = __pyx_t_57; __Pyx_INCREF(__pyx_t_55); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_55 = PyObject_GetIter(__pyx_t_57); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 659, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    __pyx_t_60 = Py_TYPE(__pyx_t_55)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 659, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_55))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_55)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_57 = PyList_GET_ITEM(__pyx_t_55, __pyx_t_59); __Pyx_INCREF(__pyx_t_57); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 659, __pyx_L1_error)
        #else
        __pyx_t_57 = PySequence_ITEM(__pyx_t_55, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 659, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_57);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_55)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_57 = PyTuple_GET_ITEM(__pyx_t_55, __pyx_t_59); __Pyx_INCREF(__pyx_t_57); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 659, __pyx_L1_error)
        #else
        __pyx_t_57 = PySequence_ITEM(__pyx_t_55, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 659, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_57);
        #endif
      }
    } else {
      __pyx_t_57 = __pyx_t_60(__pyx_t_55);
      if (unlikely(!__pyx_t_57)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 659, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_57);
    }
    __Pyx_XDECREF_SET(__pyx_v_private_included, __pyx_t_57);
    __pyx_t_57 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
+0660:       self.district_keys[private_included.key] = private_included###Private interests in the Kern Water Bank (Westside Mutual)  
    __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 660, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_included, __pyx_n_s_key); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 660, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    if (unlikely(PyObject_SetItem(__pyx_t_57, __pyx_t_56, __pyx_v_private_included) < 0)) __PYX_ERR(0, 660, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0661:       self.district_keys_len[private_included.key] = len(private_included)###Private interests in the Kern Water Bank (Westside Mutual)  
    __pyx_t_61 = PyObject_Length(__pyx_v_private_included); if (unlikely(__pyx_t_61 == ((Py_ssize_t)-1))) __PYX_ERR(0, 661, __pyx_L1_error)
    __pyx_t_56 = PyInt_FromSsize_t(__pyx_t_61); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_included, __pyx_n_s_key); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    if (unlikely(PyObject_SetItem(__pyx_t_57, __pyx_t_58, __pyx_t_56) < 0)) __PYX_ERR(0, 661, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0662:     for city_included in self.city_list:
  __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_55);
  if (likely(PyList_CheckExact(__pyx_t_55)) || PyTuple_CheckExact(__pyx_t_55)) {
    __pyx_t_56 = __pyx_t_55; __Pyx_INCREF(__pyx_t_56); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_56 = PyObject_GetIter(__pyx_t_55); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    __pyx_t_60 = Py_TYPE(__pyx_t_56)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 662, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_56))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_56)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_55 = PyList_GET_ITEM(__pyx_t_56, __pyx_t_59); __Pyx_INCREF(__pyx_t_55); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 662, __pyx_L1_error)
        #else
        __pyx_t_55 = PySequence_ITEM(__pyx_t_56, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 662, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_55);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_56)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_55 = PyTuple_GET_ITEM(__pyx_t_56, __pyx_t_59); __Pyx_INCREF(__pyx_t_55); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 662, __pyx_L1_error)
        #else
        __pyx_t_55 = PySequence_ITEM(__pyx_t_56, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 662, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_55);
        #endif
      }
    } else {
      __pyx_t_55 = __pyx_t_60(__pyx_t_56);
      if (unlikely(!__pyx_t_55)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 662, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_55);
    }
    __Pyx_XDECREF_SET(__pyx_v_city_included, __pyx_t_55);
    __pyx_t_55 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0663:       self.district_keys[city_included.key] = city_included
    __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_included, __pyx_n_s_key); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    if (unlikely(PyObject_SetItem(__pyx_t_55, __pyx_t_58, __pyx_v_city_included) < 0)) __PYX_ERR(0, 663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0664:       self.district_keys_len[city_included.key] = len(city_included)
    __pyx_t_61 = PyObject_Length(__pyx_v_city_included); if (unlikely(__pyx_t_61 == ((Py_ssize_t)-1))) __PYX_ERR(0, 664, __pyx_L1_error)
    __pyx_t_58 = PyInt_FromSsize_t(__pyx_t_61); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_included, __pyx_n_s_key); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    if (unlikely(PyObject_SetItem(__pyx_t_55, __pyx_t_57, __pyx_t_58) < 0)) __PYX_ERR(0, 664, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
 0665: 
+0666:     if self.demand_type == 'pesticide':
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_demand_type); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 666, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_56, __pyx_n_u_pesticide, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 666, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L10;
  }
+0667:       self.load_pesticide_acreage()
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_load_pesticide_acreage); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_57 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_58))) {
      __pyx_t_57 = PyMethod_GET_SELF(__pyx_t_58);
      if (likely(__pyx_t_57)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_58);
        __Pyx_INCREF(__pyx_t_57);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_58, function);
      }
    }
    __pyx_t_56 = (__pyx_t_57) ? __Pyx_PyObject_CallOneArg(__pyx_t_58, __pyx_t_57) : __Pyx_PyObject_CallNoArg(__pyx_t_58);
    __Pyx_XDECREF(__pyx_t_57); __pyx_t_57 = 0;
    if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0668:     elif self.demand_type == 'pmp':
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_demand_type); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 668, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_56, __pyx_n_u_pmp, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 668, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
  if (__pyx_t_3) {
/* … */
  }
  __pyx_L10:;
+0669:       self.load_pmp_model()
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_load_pmp_model); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_57 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_58))) {
      __pyx_t_57 = PyMethod_GET_SELF(__pyx_t_58);
      if (likely(__pyx_t_57)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_58);
        __Pyx_INCREF(__pyx_t_57);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_58, function);
      }
    }
    __pyx_t_56 = (__pyx_t_57) ? __Pyx_PyObject_CallOneArg(__pyx_t_58, __pyx_t_57) : __Pyx_PyObject_CallNoArg(__pyx_t_58);
    __Pyx_XDECREF(__pyx_t_57); __pyx_t_57 = 0;
    if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 669, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
 0670: 
+0671:     self.allocate_private_contracts()
  __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocate_private_contracts); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  __pyx_t_57 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_58))) {
    __pyx_t_57 = PyMethod_GET_SELF(__pyx_t_58);
    if (likely(__pyx_t_57)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_58);
      __Pyx_INCREF(__pyx_t_57);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_58, function);
    }
  }
  __pyx_t_56 = (__pyx_t_57) ? __Pyx_PyObject_CallOneArg(__pyx_t_58, __pyx_t_57) : __Pyx_PyObject_CallNoArg(__pyx_t_58);
  __Pyx_XDECREF(__pyx_t_57); __pyx_t_57 = 0;
  if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 671, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
 0672: 
+0673:     for x in self.district_list:
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 673, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  if (likely(PyList_CheckExact(__pyx_t_56)) || PyTuple_CheckExact(__pyx_t_56)) {
    __pyx_t_58 = __pyx_t_56; __Pyx_INCREF(__pyx_t_58); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_58 = PyObject_GetIter(__pyx_t_56); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 673, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    __pyx_t_60 = Py_TYPE(__pyx_t_58)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 673, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_58))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_58)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_56 = PyList_GET_ITEM(__pyx_t_58, __pyx_t_59); __Pyx_INCREF(__pyx_t_56); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 673, __pyx_L1_error)
        #else
        __pyx_t_56 = PySequence_ITEM(__pyx_t_58, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 673, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_56);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_58)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_56 = PyTuple_GET_ITEM(__pyx_t_58, __pyx_t_59); __Pyx_INCREF(__pyx_t_56); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 673, __pyx_L1_error)
        #else
        __pyx_t_56 = PySequence_ITEM(__pyx_t_58, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 673, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_56);
        #endif
      }
    } else {
      __pyx_t_56 = __pyx_t_60(__pyx_t_58);
      if (unlikely(!__pyx_t_56)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 673, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_56);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_56);
    __pyx_t_56 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0674:       x.find_baseline_demands(0, self.non_leap_year, self.days_in_month)
    __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_55 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_55)) __PYX_ERR(0, 674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_55);
    __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 674, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_54);
    __pyx_t_53 = NULL;
    __pyx_t_62 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_57))) {
      __pyx_t_53 = PyMethod_GET_SELF(__pyx_t_57);
      if (likely(__pyx_t_53)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_57);
        __Pyx_INCREF(__pyx_t_53);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_57, function);
        __pyx_t_62 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_57)) {
      PyObject *__pyx_temp[4] = {__pyx_t_53, __pyx_int_0, __pyx_t_55, __pyx_t_54};
      __pyx_t_56 = __Pyx_PyFunction_FastCall(__pyx_t_57, __pyx_temp+1-__pyx_t_62, 3+__pyx_t_62); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_53); __pyx_t_53 = 0;
      __Pyx_GOTREF(__pyx_t_56);
      __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
      __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_57)) {
      PyObject *__pyx_temp[4] = {__pyx_t_53, __pyx_int_0, __pyx_t_55, __pyx_t_54};
      __pyx_t_56 = __Pyx_PyCFunction_FastCall(__pyx_t_57, __pyx_temp+1-__pyx_t_62, 3+__pyx_t_62); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_53); __pyx_t_53 = 0;
      __Pyx_GOTREF(__pyx_t_56);
      __Pyx_DECREF(__pyx_t_55); __pyx_t_55 = 0;
      __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
    } else
    #endif
    {
      __pyx_t_52 = PyTuple_New(3+__pyx_t_62); if (unlikely(!__pyx_t_52)) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_52);
      if (__pyx_t_53) {
        __Pyx_GIVEREF(__pyx_t_53); PyTuple_SET_ITEM(__pyx_t_52, 0, __pyx_t_53); __pyx_t_53 = NULL;
      }
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_52, 0+__pyx_t_62, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_t_55);
      PyTuple_SET_ITEM(__pyx_t_52, 1+__pyx_t_62, __pyx_t_55);
      __Pyx_GIVEREF(__pyx_t_54);
      PyTuple_SET_ITEM(__pyx_t_52, 2+__pyx_t_62, __pyx_t_54);
      __pyx_t_55 = 0;
      __pyx_t_54 = 0;
      __pyx_t_56 = __Pyx_PyObject_Call(__pyx_t_57, __pyx_t_52, NULL); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_56);
      __Pyx_DECREF(__pyx_t_52); __pyx_t_52 = 0;
    }
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0675:     for x in self.private_list:
  __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_58);
  if (likely(PyList_CheckExact(__pyx_t_58)) || PyTuple_CheckExact(__pyx_t_58)) {
    __pyx_t_56 = __pyx_t_58; __Pyx_INCREF(__pyx_t_56); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_56 = PyObject_GetIter(__pyx_t_58); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    __pyx_t_60 = Py_TYPE(__pyx_t_56)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 675, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_56))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_56)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_58 = PyList_GET_ITEM(__pyx_t_56, __pyx_t_59); __Pyx_INCREF(__pyx_t_58); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 675, __pyx_L1_error)
        #else
        __pyx_t_58 = PySequence_ITEM(__pyx_t_56, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_58);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_56)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_58 = PyTuple_GET_ITEM(__pyx_t_56, __pyx_t_59); __Pyx_INCREF(__pyx_t_58); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 675, __pyx_L1_error)
        #else
        __pyx_t_58 = PySequence_ITEM(__pyx_t_56, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_58);
        #endif
      }
    } else {
      __pyx_t_58 = __pyx_t_60(__pyx_t_56);
      if (unlikely(!__pyx_t_58)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 675, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_58);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_58);
    __pyx_t_58 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0676:       x.find_baseline_demands(self.non_leap_year, self.days_in_month)
    __pyx_t_57 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_52 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_52)) __PYX_ERR(0, 676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_52);
    __pyx_t_54 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_54)) __PYX_ERR(0, 676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_54);
    __pyx_t_55 = NULL;
    __pyx_t_62 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_57))) {
      __pyx_t_55 = PyMethod_GET_SELF(__pyx_t_57);
      if (likely(__pyx_t_55)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_57);
        __Pyx_INCREF(__pyx_t_55);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_57, function);
        __pyx_t_62 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_57)) {
      PyObject *__pyx_temp[3] = {__pyx_t_55, __pyx_t_52, __pyx_t_54};
      __pyx_t_58 = __Pyx_PyFunction_FastCall(__pyx_t_57, __pyx_temp+1-__pyx_t_62, 2+__pyx_t_62); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 676, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_55); __pyx_t_55 = 0;
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_52); __pyx_t_52 = 0;
      __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_57)) {
      PyObject *__pyx_temp[3] = {__pyx_t_55, __pyx_t_52, __pyx_t_54};
      __pyx_t_58 = __Pyx_PyCFunction_FastCall(__pyx_t_57, __pyx_temp+1-__pyx_t_62, 2+__pyx_t_62); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 676, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_55); __pyx_t_55 = 0;
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_52); __pyx_t_52 = 0;
      __Pyx_DECREF(__pyx_t_54); __pyx_t_54 = 0;
    } else
    #endif
    {
      __pyx_t_53 = PyTuple_New(2+__pyx_t_62); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 676, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_53);
      if (__pyx_t_55) {
        __Pyx_GIVEREF(__pyx_t_55); PyTuple_SET_ITEM(__pyx_t_53, 0, __pyx_t_55); __pyx_t_55 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_52);
      PyTuple_SET_ITEM(__pyx_t_53, 0+__pyx_t_62, __pyx_t_52);
      __Pyx_GIVEREF(__pyx_t_54);
      PyTuple_SET_ITEM(__pyx_t_53, 1+__pyx_t_62, __pyx_t_54);
      __pyx_t_52 = 0;
      __pyx_t_54 = 0;
      __pyx_t_58 = __Pyx_PyObject_Call(__pyx_t_57, __pyx_t_53, NULL); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 676, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
    }
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0677:       x.turnout_list = {}
    __pyx_t_58 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_turnout_list, __pyx_t_58) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0678:       for xx in x.district_list:
    __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_58);
    if (likely(PyList_CheckExact(__pyx_t_58)) || PyTuple_CheckExact(__pyx_t_58)) {
      __pyx_t_57 = __pyx_t_58; __Pyx_INCREF(__pyx_t_57); __pyx_t_61 = 0;
      __pyx_t_63 = NULL;
    } else {
      __pyx_t_61 = -1; __pyx_t_57 = PyObject_GetIter(__pyx_t_58); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 678, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_57);
      __pyx_t_63 = Py_TYPE(__pyx_t_57)->tp_iternext; if (unlikely(!__pyx_t_63)) __PYX_ERR(0, 678, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
    for (;;) {
      if (likely(!__pyx_t_63)) {
        if (likely(PyList_CheckExact(__pyx_t_57))) {
          if (__pyx_t_61 >= PyList_GET_SIZE(__pyx_t_57)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_58 = PyList_GET_ITEM(__pyx_t_57, __pyx_t_61); __Pyx_INCREF(__pyx_t_58); __pyx_t_61++; if (unlikely(0 < 0)) __PYX_ERR(0, 678, __pyx_L1_error)
          #else
          __pyx_t_58 = PySequence_ITEM(__pyx_t_57, __pyx_t_61); __pyx_t_61++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 678, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_58);
          #endif
        } else {
          if (__pyx_t_61 >= PyTuple_GET_SIZE(__pyx_t_57)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_58 = PyTuple_GET_ITEM(__pyx_t_57, __pyx_t_61); __Pyx_INCREF(__pyx_t_58); __pyx_t_61++; if (unlikely(0 < 0)) __PYX_ERR(0, 678, __pyx_L1_error)
          #else
          __pyx_t_58 = PySequence_ITEM(__pyx_t_57, __pyx_t_61); __pyx_t_61++; if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 678, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_58);
          #endif
        }
      } else {
        __pyx_t_58 = __pyx_t_63(__pyx_t_57);
        if (unlikely(!__pyx_t_58)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 678, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_58);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_58);
      __pyx_t_58 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
 0679:         # district_object = self.district_keys[xx] 
+0680:         self.district_keys[xx].has_private = 1
      __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 680, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __pyx_t_53 = __Pyx_PyObject_GetItem(__pyx_t_58, __pyx_v_xx); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 680, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_53);
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_53, __pyx_n_s_has_private, __pyx_int_1) < 0) __PYX_ERR(0, 680, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
+0681:         x.turnout_list[xx] = self.district_keys[xx].turnout_list
      __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_53);
      __pyx_t_58 = __Pyx_PyObject_GetItem(__pyx_t_53, __pyx_v_xx); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
      __pyx_t_53 = __Pyx_PyObject_GetAttrStr(__pyx_t_58, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_53);
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
      __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      if (unlikely(PyObject_SetItem(__pyx_t_58, __pyx_v_xx, __pyx_t_53) < 0)) __PYX_ERR(0, 681, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
      __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
+0682:     for x in self.city_list:
  __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 682, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_56);
  if (likely(PyList_CheckExact(__pyx_t_56)) || PyTuple_CheckExact(__pyx_t_56)) {
    __pyx_t_57 = __pyx_t_56; __Pyx_INCREF(__pyx_t_57); __pyx_t_59 = 0;
    __pyx_t_60 = NULL;
  } else {
    __pyx_t_59 = -1; __pyx_t_57 = PyObject_GetIter(__pyx_t_56); if (unlikely(!__pyx_t_57)) __PYX_ERR(0, 682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_57);
    __pyx_t_60 = Py_TYPE(__pyx_t_57)->tp_iternext; if (unlikely(!__pyx_t_60)) __PYX_ERR(0, 682, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
  for (;;) {
    if (likely(!__pyx_t_60)) {
      if (likely(PyList_CheckExact(__pyx_t_57))) {
        if (__pyx_t_59 >= PyList_GET_SIZE(__pyx_t_57)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_56 = PyList_GET_ITEM(__pyx_t_57, __pyx_t_59); __Pyx_INCREF(__pyx_t_56); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 682, __pyx_L1_error)
        #else
        __pyx_t_56 = PySequence_ITEM(__pyx_t_57, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 682, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_56);
        #endif
      } else {
        if (__pyx_t_59 >= PyTuple_GET_SIZE(__pyx_t_57)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_56 = PyTuple_GET_ITEM(__pyx_t_57, __pyx_t_59); __Pyx_INCREF(__pyx_t_56); __pyx_t_59++; if (unlikely(0 < 0)) __PYX_ERR(0, 682, __pyx_L1_error)
        #else
        __pyx_t_56 = PySequence_ITEM(__pyx_t_57, __pyx_t_59); __pyx_t_59++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 682, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_56);
        #endif
      }
    } else {
      __pyx_t_56 = __pyx_t_60(__pyx_t_57);
      if (unlikely(!__pyx_t_56)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 682, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_56);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_56);
    __pyx_t_56 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_57); __pyx_t_57 = 0;
+0683:       x.turnout_list = {}
    __pyx_t_56 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_turnout_list, __pyx_t_56) < 0) __PYX_ERR(0, 683, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
+0684:       for xx in x.district_list:
    __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_56);
    if (likely(PyList_CheckExact(__pyx_t_56)) || PyTuple_CheckExact(__pyx_t_56)) {
      __pyx_t_53 = __pyx_t_56; __Pyx_INCREF(__pyx_t_53); __pyx_t_61 = 0;
      __pyx_t_63 = NULL;
    } else {
      __pyx_t_61 = -1; __pyx_t_53 = PyObject_GetIter(__pyx_t_56); if (unlikely(!__pyx_t_53)) __PYX_ERR(0, 684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_53);
      __pyx_t_63 = Py_TYPE(__pyx_t_53)->tp_iternext; if (unlikely(!__pyx_t_63)) __PYX_ERR(0, 684, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
    for (;;) {
      if (likely(!__pyx_t_63)) {
        if (likely(PyList_CheckExact(__pyx_t_53))) {
          if (__pyx_t_61 >= PyList_GET_SIZE(__pyx_t_53)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_56 = PyList_GET_ITEM(__pyx_t_53, __pyx_t_61); __Pyx_INCREF(__pyx_t_56); __pyx_t_61++; if (unlikely(0 < 0)) __PYX_ERR(0, 684, __pyx_L1_error)
          #else
          __pyx_t_56 = PySequence_ITEM(__pyx_t_53, __pyx_t_61); __pyx_t_61++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 684, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_56);
          #endif
        } else {
          if (__pyx_t_61 >= PyTuple_GET_SIZE(__pyx_t_53)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_56 = PyTuple_GET_ITEM(__pyx_t_53, __pyx_t_61); __Pyx_INCREF(__pyx_t_56); __pyx_t_61++; if (unlikely(0 < 0)) __PYX_ERR(0, 684, __pyx_L1_error)
          #else
          __pyx_t_56 = PySequence_ITEM(__pyx_t_53, __pyx_t_61); __pyx_t_61++; if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 684, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_56);
          #endif
        }
      } else {
        __pyx_t_56 = __pyx_t_63(__pyx_t_53);
        if (unlikely(!__pyx_t_56)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 684, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_56);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_56);
      __pyx_t_56 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_53); __pyx_t_53 = 0;
 0685:         # district_object = self.district_keys[xx] 
+0686:         self.district_keys[xx].has_private = 1
      __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_56);
      __pyx_t_58 = __Pyx_PyObject_GetItem(__pyx_t_56, __pyx_v_xx); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_58, __pyx_n_s_has_private, __pyx_int_1) < 0) __PYX_ERR(0, 686, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
+0687:         x.turnout_list[xx] = self.district_keys[xx].turnout_list
      __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __pyx_t_56 = __Pyx_PyObject_GetItem(__pyx_t_58, __pyx_v_xx); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_56);
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
      __pyx_t_58 = __Pyx_PyObject_GetAttrStr(__pyx_t_56, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_58)) __PYX_ERR(0, 687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_58);
      __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
      __pyx_t_56 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnout_list); if (unlikely(!__pyx_t_56)) __PYX_ERR(0, 687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_56);
      if (unlikely(PyObject_SetItem(__pyx_t_56, __pyx_v_xx, __pyx_t_58) < 0)) __PYX_ERR(0, 687, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_56); __pyx_t_56 = 0;
      __Pyx_DECREF(__pyx_t_58); __pyx_t_58 = 0;
 0688: 
 0689: 
+0690:   def initialize_sw_contracts(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_17initialize_sw_contracts(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_17initialize_sw_contracts = {"initialize_sw_contracts", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_17initialize_sw_contracts, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_17initialize_sw_contracts(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_sw_contracts (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_16initialize_sw_contracts(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_16initialize_sw_contracts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_contract_options = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_contract_object = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__10)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_sw_contracts", 0);
  __Pyx_TraceCall("initialize_sw_contracts", __pyx_f[0], 690, 0, __PYX_ERR(0, 690, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_sw_contracts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_contract_options);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_contract_object);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__95 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_contract_options, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_contract_object, __pyx_n_s_xx, __pyx_n_s_district, __pyx_n_s_district_object, __pyx_n_s_yy); if (unlikely(!__pyx_tuple__95)) __PYX_ERR(0, 690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__95);
  __Pyx_GIVEREF(__pyx_tuple__95);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_17initialize_sw_contracts, 0, __pyx_n_s_Model_initialize_sw_contracts, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__10)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 690, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_sw_contracts, __pyx_t_2) < 0) __PYX_ERR(0, 690, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__10 = (PyObject*)__Pyx_PyCode_New(1, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__95, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_sw_contracts, 690, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__10)) __PYX_ERR(0, 690, __pyx_L1_error)
 0691:     ############################################################################
 0692:     ###Contract Initialization
 0693: 	############################################################################
 0694:    	#Project Contracts/Water Rights
+0695:     self.friant1 = Contract(self, 'friant1', 'FR1')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_friant1);
  __Pyx_GIVEREF(__pyx_n_u_friant1);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_friant1);
  __Pyx_INCREF(__pyx_n_u_FR1);
  __Pyx_GIVEREF(__pyx_n_u_FR1);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_FR1);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_friant1, __pyx_t_2) < 0) __PYX_ERR(0, 695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0696:     self.friant2 = Contract(self, 'friant2', 'FR2')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_friant2);
  __Pyx_GIVEREF(__pyx_n_u_friant2);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_friant2);
  __Pyx_INCREF(__pyx_n_u_FR2);
  __Pyx_GIVEREF(__pyx_n_u_FR2);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_FR2);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_friant2, __pyx_t_1) < 0) __PYX_ERR(0, 696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0697:     self.swpdelta = Contract(self, 'swpdelta', 'SLS')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_swpdelta);
  __Pyx_GIVEREF(__pyx_n_u_swpdelta);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_swpdelta);
  __Pyx_INCREF(__pyx_n_u_SLS);
  __Pyx_GIVEREF(__pyx_n_u_SLS);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_SLS);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta, __pyx_t_2) < 0) __PYX_ERR(0, 697, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0698:     self.cvpdelta = Contract(self, 'cvpdelta', 'SLF')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_cvpdelta);
  __Pyx_GIVEREF(__pyx_n_u_cvpdelta);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_cvpdelta);
  __Pyx_INCREF(__pyx_n_u_SLF);
  __Pyx_GIVEREF(__pyx_n_u_SLF);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_SLF);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta, __pyx_t_1) < 0) __PYX_ERR(0, 698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0699:     self.cvpexchange = Contract(self, 'cvpexchange', 'ECH')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_cvpexchange);
  __Pyx_GIVEREF(__pyx_n_u_cvpexchange);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_cvpexchange);
  __Pyx_INCREF(__pyx_n_u_ECH);
  __Pyx_GIVEREF(__pyx_n_u_ECH);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ECH);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 699, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange, __pyx_t_2) < 0) __PYX_ERR(0, 699, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0700:     self.crossvalley = Contract(self, 'crossvalley', 'CVC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_crossvalley);
  __Pyx_GIVEREF(__pyx_n_u_crossvalley);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_crossvalley);
  __Pyx_INCREF(__pyx_n_u_CVC);
  __Pyx_GIVEREF(__pyx_n_u_CVC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_CVC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley, __pyx_t_1) < 0) __PYX_ERR(0, 700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0701:     self.kernriver = Contract(self, 'kernriver', 'KRR')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kernriver);
  __Pyx_GIVEREF(__pyx_n_u_kernriver);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kernriver);
  __Pyx_INCREF(__pyx_n_u_KRR);
  __Pyx_GIVEREF(__pyx_n_u_KRR);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KRR);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kernriver, __pyx_t_2) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0702:     self.tuleriver = Contract(self, 'tuleriver', 'TRR')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_tuleriver);
  __Pyx_GIVEREF(__pyx_n_u_tuleriver);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_tuleriver);
  __Pyx_INCREF(__pyx_n_u_TRR);
  __Pyx_GIVEREF(__pyx_n_u_TRR);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_TRR);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tuleriver, __pyx_t_1) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0703:     self.kaweahriver = Contract(self, 'kaweahriver', 'WRR')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kaweahriver);
  __Pyx_GIVEREF(__pyx_n_u_kaweahriver);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kaweahriver);
  __Pyx_INCREF(__pyx_n_u_WRR);
  __Pyx_GIVEREF(__pyx_n_u_WRR);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WRR);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 703, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriver, __pyx_t_2) < 0) __PYX_ERR(0, 703, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0704:     self.kingsriver = Contract(self, 'kingsriver', 'KGR')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kingsriver);
  __Pyx_GIVEREF(__pyx_n_u_kingsriver);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kingsriver);
  __Pyx_INCREF(__pyx_n_u_KGR);
  __Pyx_GIVEREF(__pyx_n_u_KGR);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KGR);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_11contract_cy_Contract), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 704, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kingsriver, __pyx_t_1) < 0) __PYX_ERR(0, 704, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0705: 
 0706: 	##List of all intialized contracts for looping
+0707:     self.contract_list = [self.friant1, self.friant2, self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley, self.kernriver, self.tuleriver, self.kaweahriver, self.kingsriver]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriver); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriver); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriver); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyList_New(10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_11, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_11, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_11, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_11, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_11, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_11, 7, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_11, 8, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_11, 9, __pyx_t_10);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_contract_list, __pyx_t_11) < 0) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 0708: 
 0709:     ##Contract Keys - dictionary to be able to call the member from its key	
+0710:     self.contract_keys = {}
  __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 710, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys, __pyx_t_11) < 0) __PYX_ERR(0, 710, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0711:     for contract_options in self.contract_list:
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 711, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
    __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 711, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_13 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 711, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_10))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 711, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 711, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      }
    } else {
      __pyx_t_11 = __pyx_t_13(__pyx_t_10);
      if (unlikely(!__pyx_t_11)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 711, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_11);
    }
    __Pyx_XDECREF_SET(__pyx_v_contract_options, __pyx_t_11);
    __pyx_t_11 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0712:       self.contract_keys[contract_options.name] = contract_options
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_options, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 712, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_9, __pyx_v_contract_options) < 0)) __PYX_ERR(0, 712, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0713: 
 0714:     ##For each district on the district list, find the total carryover storage
 0715:     ##they have associated with each contract
 0716:     ##Dictionary is a part of the district class, and dictionary keys are the names of contract types
+0717:     for x in self.district_list:
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 717, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
    __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 717, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 717, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 717, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 717, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      }
    } else {
      __pyx_t_10 = __pyx_t_13(__pyx_t_9);
      if (unlikely(!__pyx_t_10)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 717, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0718:       for y in x.contract_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_14 = 0;
      __pyx_t_15 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 718, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 718, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_15)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 718, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 718, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 718, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 718, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_15(__pyx_t_11);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 718, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0719:         contract_object = self.contract_keys[y]
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 719, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 719, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_8);
      __pyx_t_8 = 0;
+0720:         if contract_object.type == "contract":
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 720, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 720, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_16) {
/* … */
        goto __pyx_L9;
      }
+0721:           if x.has_pesticide:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_16) {
/* … */
          goto __pyx_L10;
        }
+0722:             x.contract_carryover_list[y] = contract_object.carryover*x.project_contract[y]*(1.0-min(x.private_fraction))
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_y); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_y, __pyx_t_8) < 0)) __PYX_ERR(0, 722, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 0723:           else:
+0724:             x.contract_carryover_list[y] = contract_object.carryover*x.project_contract[y]*(1.0-x.private_fraction[0])
        /*else*/ {
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_y, __pyx_t_8) < 0)) __PYX_ERR(0, 724, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_L10:;
 0725: 
+0726:         elif contract_object.type == "right":
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_t_8, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 726, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_16) {
/* … */
      }
      __pyx_L9:;
+0727:           if x.has_pesticide:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 727, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 727, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_16) {
/* … */
          goto __pyx_L11;
        }
+0728:             x.contract_carryover_list[y] = contract_object.carryover*x.rights[y]['carryover']*(1.0-min(x.private_fraction))
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_y); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_y, __pyx_t_8) < 0)) __PYX_ERR(0, 728, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 0729:           else:
+0730:             x.contract_carryover_list[y] = contract_object.carryover*x.rights[y]['carryover']*(1.0-x.private_fraction[0])
        /*else*/ {
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_y); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_10, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_8, 1.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_y, __pyx_t_8) < 0)) __PYX_ERR(0, 730, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_L11:;
+0731:         if y == "tableA":
      __pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 731, __pyx_L1_error)
      if (__pyx_t_16) {
/* … */
      }
+0732:           x.initial_table_a = x.project_contract[y]
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a, __pyx_t_10) < 0) __PYX_ERR(0, 732, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0733:     for x in self.private_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 733, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_11))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_13(__pyx_t_11);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 733, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0734:       x.contract_list = []
    __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_list, __pyx_t_9) < 0) __PYX_ERR(0, 734, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0735:       for xx in x.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_10 = __pyx_t_9; __Pyx_INCREF(__pyx_t_10); __pyx_t_14 = 0;
      __pyx_t_15 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 735, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 735, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_15)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 735, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 735, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_9); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 735, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 735, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_15(__pyx_t_10);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 735, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0736:         district = self.district_keys[xx]
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_8);
      __pyx_t_8 = 0;
+0737:         for y in district.contract_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 737, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_18 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 737, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 737, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 737, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 737, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_18(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 737, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0738:           if y not in x.contract_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = (__Pyx_PySequence_ContainsTF(__pyx_v_y, __pyx_t_8, Py_NE)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 738, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_19 = (__pyx_t_16 != 0);
        if (__pyx_t_19) {
/* … */
        }
+0739:             x.contract_list.append(y)
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 739, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_20 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_v_y); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 739, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0740:       for xx in x.district_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
      __pyx_t_15 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 740, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_15 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 740, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_15)) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 740, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 740, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 740, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 740, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_15(__pyx_t_9);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 740, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0741:         district_object = self.district_keys[xx]
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_8);
      __pyx_t_8 = 0;
+0742:         for yy in district_object.contract_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 742, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_10 = __pyx_t_8; __Pyx_INCREF(__pyx_t_10); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 742, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_18 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 742, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_10))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 742, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 742, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 742, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 742, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_18(__pyx_t_10);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 742, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0743:           contract_object = self.contract_keys[yy]
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 743, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_yy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 743, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_7);
        __pyx_t_7 = 0;
+0744:           if contract_object.type == "contract":
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_19 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 744, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_19) {
/* … */
          goto __pyx_L24;
        }
+0745:             x.contract_carryover_list[xx][yy] = contract_object.carryover*district_object.project_contract[yy]*max(x.private_fraction[xx])
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_yy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_yy, __pyx_t_7) < 0)) __PYX_ERR(0, 745, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0746: 
+0747:           elif contract_object.type == "right":
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 747, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_19 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 747, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_19) {
/* … */
        }
        __pyx_L24:;
+0748:             x.contract_carryover_list[xx][yy] = contract_object.carryover*district_object.rights[yy]['carryover']*max(x.private_fraction[xx])
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_yy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_yy, __pyx_t_7) < 0)) __PYX_ERR(0, 748, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0749:     for x in self.city_list:
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 749, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
    __pyx_t_9 = __pyx_t_11; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 749, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 749, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 749, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 749, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 749, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      }
    } else {
      __pyx_t_11 = __pyx_t_13(__pyx_t_9);
      if (unlikely(!__pyx_t_11)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 749, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_11);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_11);
    __pyx_t_11 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0750:       x.contract_list = []
    __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_list, __pyx_t_11) < 0) __PYX_ERR(0, 750, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0751:       for xx in x.district_list:
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
      __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_14 = 0;
      __pyx_t_15 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 751, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_15 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 751, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    for (;;) {
      if (likely(!__pyx_t_15)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_11); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 751, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 751, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_14); __Pyx_INCREF(__pyx_t_11); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 751, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 751, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_15(__pyx_t_10);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 751, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_11);
      __pyx_t_11 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0752:         district = self.district_keys[xx]
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 752, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_7);
      __pyx_t_7 = 0;
+0753:         for y in district.contract_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 753, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_11 = __pyx_t_7; __Pyx_INCREF(__pyx_t_11); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 753, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_18 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 753, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 753, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 753, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 753, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 753, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_18(__pyx_t_11);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 753, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0754:           if y not in x.contract_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_19 = (__Pyx_PySequence_ContainsTF(__pyx_v_y, __pyx_t_7, Py_NE)); if (unlikely(__pyx_t_19 < 0)) __PYX_ERR(0, 754, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_16 = (__pyx_t_19 != 0);
        if (__pyx_t_16) {
/* … */
        }
+0755:             x.contract_list.append(y)
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 755, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_20 = __Pyx_PyObject_Append(__pyx_t_7, __pyx_v_y); if (unlikely(__pyx_t_20 == ((int)-1))) __PYX_ERR(0, 755, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0756:       for xx in x.district_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 756, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_14 = 0;
      __pyx_t_15 = NULL;
    } else {
      __pyx_t_14 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 756, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_15)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 756, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_14); __Pyx_INCREF(__pyx_t_10); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 756, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 756, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_15(__pyx_t_11);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 756, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0757:         district_object = self.district_keys[xx]
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 757, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 757, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_7);
      __pyx_t_7 = 0;
+0758:         for yy in district_object.contract_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 758, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_10 = __pyx_t_7; __Pyx_INCREF(__pyx_t_10); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_18 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 758, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_10))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 758, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 758, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 758, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_10, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 758, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_18(__pyx_t_10);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 758, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0759:           contract_object = self.contract_keys[yy]
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 759, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_yy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 759, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_6);
        __pyx_t_6 = 0;
+0760:           if contract_object.type == "contract":
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 760, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_16) {
/* … */
          goto __pyx_L36;
        }
+0761:             x.contract_carryover_list[xx][yy] = contract_object.carryover*district_object.project_contract[yy]*max(x.private_fraction[xx])
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_yy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_yy, __pyx_t_6) < 0)) __PYX_ERR(0, 761, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0762:           elif contract_object.type == "right":
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 762, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_16 = (__Pyx_PyUnicode_Equals(__pyx_t_6, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 762, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_16) {
/* … */
        }
        __pyx_L36:;
+0763:             x.contract_carryover_list[xx][yy] = contract_object.carryover*district_object.rights[yy]['carryover']*max(x.private_fraction[xx])
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_carryover); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_yy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_carryover_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_yy, __pyx_t_6) < 0)) __PYX_ERR(0, 763, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 0764: 
 0765: 
 0766:     ###Find Risk in Contract Delivery
+0767:     self.determine_recharge_recovery_risk()
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_determine_recharge_recovery_risk); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
    }
  }
  __pyx_t_9 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 767, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0768: 
 0769: 
+0770:   def initialize_water_banks(self, scenario='baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_19initialize_water_banks(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_19initialize_water_banks = {"initialize_water_banks", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_19initialize_water_banks, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_19initialize_water_banks(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_water_banks (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scenario,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)((PyObject*)__pyx_n_u_baseline));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_water_banks") < 0)) __PYX_ERR(0, 770, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_scenario = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initialize_water_banks", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 770, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_water_banks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_18initialize_water_banks(__pyx_self, __pyx_v_self, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_18initialize_water_banks(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_scenario) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_wb = NULL;
  PyObject *__pyx_v_lb = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__11)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_water_banks", 0);
  __Pyx_TraceCall("initialize_water_banks", __pyx_f[0], 770, 0, __PYX_ERR(0, 770, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_water_banks", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_wb);
  __Pyx_XDECREF(__pyx_v_lb);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__96 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_scenario, __pyx_n_s_x, __pyx_n_s_wb, __pyx_n_s_lb, __pyx_n_s_xx); if (unlikely(!__pyx_tuple__96)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__96);
  __Pyx_GIVEREF(__pyx_tuple__96);
  __pyx_codeobj__11 = (PyObject*)__Pyx_PyCode_New(2, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__96, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_water_banks, 770, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__11)) __PYX_ERR(0, 770, __pyx_L1_error)
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_19initialize_water_banks, 0, __pyx_n_s_Model_initialize_water_banks, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__11)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__97);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_water_banks, __pyx_t_2) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_tuple__97 = PyTuple_Pack(1, ((PyObject*)__pyx_n_u_baseline)); if (unlikely(!__pyx_tuple__97)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__97);
  __Pyx_GIVEREF(__pyx_tuple__97);
 0771:     ############################################################################
 0772:     ###Water Bank Initialization
 0773: 	############################################################################
 0774: 
 0775: 	##Water Banks
+0776:     self.stockdale = Waterbank(self, 'stockdale', 'STOCK')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_stockdale);
  __Pyx_GIVEREF(__pyx_n_u_stockdale);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_stockdale);
  __Pyx_INCREF(__pyx_n_u_STOCK);
  __Pyx_GIVEREF(__pyx_n_u_STOCK);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_STOCK);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_stockdale, __pyx_t_2) < 0) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0777:     self.kernriverbed = Waterbank(self, 'kernriverbed', 'KRC')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kernriverbed);
  __Pyx_GIVEREF(__pyx_n_u_kernriverbed);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_kernriverbed);
  __Pyx_INCREF(__pyx_n_u_KRC);
  __Pyx_GIVEREF(__pyx_n_u_KRC);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_KRC);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kernriverbed, __pyx_t_1) < 0) __PYX_ERR(0, 777, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0778:     self.poso = Waterbank(self, 'poso', 'POSO')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_poso);
  __Pyx_GIVEREF(__pyx_n_u_poso);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_poso);
  __Pyx_INCREF(__pyx_n_u_POSO);
  __Pyx_GIVEREF(__pyx_n_u_POSO);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_POSO);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_poso, __pyx_t_2) < 0) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0779:     self.pioneer = Waterbank(self, 'pioneer', 'PIO')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_pioneer);
  __Pyx_GIVEREF(__pyx_n_u_pioneer);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_pioneer);
  __Pyx_INCREF(__pyx_n_u_PIO);
  __Pyx_GIVEREF(__pyx_n_u_PIO);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_PIO);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 779, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pioneer, __pyx_t_1) < 0) __PYX_ERR(0, 779, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0780:     self.kwb = Waterbank(self, 'kwb', 'KWB')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_kwb);
  __Pyx_GIVEREF(__pyx_n_u_kwb);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kwb);
  __Pyx_INCREF(__pyx_n_u_KWB);
  __Pyx_GIVEREF(__pyx_n_u_KWB);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_KWB);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kwb, __pyx_t_2) < 0) __PYX_ERR(0, 780, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0781:     self.berrendawb = Waterbank(self, 'berrendawb', 'BRM')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_berrendawb);
  __Pyx_GIVEREF(__pyx_n_u_berrendawb);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_berrendawb);
  __Pyx_INCREF(__pyx_n_u_BRM);
  __Pyx_GIVEREF(__pyx_n_u_BRM);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_BRM);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_berrendawb, __pyx_t_1) < 0) __PYX_ERR(0, 781, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0782:     self.b2800 = Waterbank(self, 'b2800', 'B2800')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_b2800);
  __Pyx_GIVEREF(__pyx_n_u_b2800);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_b2800);
  __Pyx_INCREF(__pyx_n_u_B2800);
  __Pyx_GIVEREF(__pyx_n_u_B2800);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_B2800);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_b2800, __pyx_t_2) < 0) __PYX_ERR(0, 782, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0783:     self.aewb = Waterbank(self, 'aewb', 'AEMWD')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_aewb);
  __Pyx_GIVEREF(__pyx_n_u_aewb);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_aewb);
  __Pyx_INCREF(__pyx_n_u_AEMWD);
  __Pyx_GIVEREF(__pyx_n_u_AEMWD);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_AEMWD);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_aewb, __pyx_t_1) < 0) __PYX_ERR(0, 783, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0784:     self.wkwb = Waterbank(self, 'wkwb', 'WKB')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_wkwb);
  __Pyx_GIVEREF(__pyx_n_u_wkwb);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_wkwb);
  __Pyx_INCREF(__pyx_n_u_WKB);
  __Pyx_GIVEREF(__pyx_n_u_WKB);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WKB);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 784, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_wkwb, __pyx_t_2) < 0) __PYX_ERR(0, 784, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+0785:     self.irvineranch = Waterbank(self, 'irvineranch', 'IVR')
  __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_irvineranch);
  __Pyx_GIVEREF(__pyx_n_u_irvineranch);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_n_u_irvineranch);
  __Pyx_INCREF(__pyx_n_u_IVR);
  __Pyx_GIVEREF(__pyx_n_u_IVR);
  PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_n_u_IVR);
  __pyx_t_1 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch, __pyx_t_1) < 0) __PYX_ERR(0, 785, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0786:     self.northkernwb = Waterbank(self, 'northkernwb', 'NKB')
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_self);
  __Pyx_GIVEREF(__pyx_v_self);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_self);
  __Pyx_INCREF(__pyx_n_u_northkernwb);
  __Pyx_GIVEREF(__pyx_n_u_northkernwb);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_northkernwb);
  __Pyx_INCREF(__pyx_n_u_NKB);
  __Pyx_GIVEREF(__pyx_n_u_NKB);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_NKB);
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_12waterbank_cy_Waterbank), __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_northkernwb, __pyx_t_2) < 0) __PYX_ERR(0, 786, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0787: 
+0788:     self.waterbank_list = [self.stockdale, self.kernriverbed, self.poso, self.pioneer, self.kwb, self.berrendawb, self.b2800, self.wkwb, self.irvineranch, self.northkernwb]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_stockdale); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverbed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pioneer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrendawb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_b2800); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wkwb); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkernwb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = PyList_New(10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_11, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_11, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_11, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_11, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_11, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_11, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_11, 7, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_11, 8, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_11, 9, __pyx_t_10);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list, __pyx_t_11) < 0) __PYX_ERR(0, 788, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0789:     self.leiu_list = []
  __pyx_t_11 = PyList_New(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list, __pyx_t_11) < 0) __PYX_ERR(0, 789, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0790:     for x in self.district_list:
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
    __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_13 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 790, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_10))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 790, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 790, __pyx_L1_error)
        #else
        __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        #endif
      }
    } else {
      __pyx_t_11 = __pyx_t_13(__pyx_t_10);
      if (unlikely(!__pyx_t_11)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 790, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_11);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_11);
    __pyx_t_11 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0791:       if (x.in_leiu_banking == 1):
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 791, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_11, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 791, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 791, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (__pyx_t_14) {
/* … */
    }
+0792:         self.leiu_list.append(x)
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 792, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_v_x); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 792, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0793: 
+0794:     for x in self.district_list:
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
    __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 794, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_13 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 794, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 794, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 794, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 794, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 794, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      }
    } else {
      __pyx_t_10 = __pyx_t_13(__pyx_t_9);
      if (unlikely(!__pyx_t_10)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 794, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0795:       x.delivery_location_list = []
    __pyx_t_10 = PyList_New(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list, __pyx_t_10) < 0) __PYX_ERR(0, 795, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0796:       x.delivery_location_list.append(x.key)
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_10, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 796, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0797:       x.daily_supplies_full[x.key + '_recharged'] = np.zeros(self.T)
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_11 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_t_10) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_10);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = PyNumber_Add(__pyx_t_10, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_7, __pyx_t_11) < 0)) __PYX_ERR(0, 797, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0798:       x.deliveries[x.key + '_recharged'] = np.zeros(self.number_years)
    __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_11 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_10, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_7);
    __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_10 = PyNumber_Add(__pyx_t_7, __pyx_n_u_recharged); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_10, __pyx_t_11) < 0)) __PYX_ERR(0, 798, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0799:       for wb in self.waterbank_list:
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
      __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 799, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_17 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 799, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 799, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 799, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 799, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 799, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_17(__pyx_t_10);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 799, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_XDECREF_SET(__pyx_v_wb, __pyx_t_11);
      __pyx_t_11 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0800:         x.daily_supplies_full[wb.key + '_recharged'] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_11 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_n_u_recharged); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_11) < 0)) __PYX_ERR(0, 800, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0801:         x.deliveries[wb.key + '_recharged'] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_11 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_8 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_8, __pyx_t_11) < 0)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0802:         x.delivery_location_list.append(wb.key)
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_11, __pyx_t_8); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 802, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0803:       for lb in self.leiu_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_8 = __pyx_t_10; __Pyx_INCREF(__pyx_t_8); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 803, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_17 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 803, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 803, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_8, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 803, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 803, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_8, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 803, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_17(__pyx_t_8);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 803, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_lb, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0804:         x.daily_supplies_full[lb.key + '_recharged'] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_11, __pyx_n_s_np); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_6 = PyNumber_Add(__pyx_t_11, __pyx_n_u_recharged); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_10) < 0)) __PYX_ERR(0, 804, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0805:         x.deliveries[lb.key + '_recharged'] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_10 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_11, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_11, __pyx_t_10) < 0)) __PYX_ERR(0, 805, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0806:         x.delivery_location_list.append(lb.key)
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 806, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 806, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_10, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 806, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0807:     for x in self.private_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 807, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 807, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 807, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 807, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_13(__pyx_t_8);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 807, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0808:       x.delivery_location_list = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 808, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list, __pyx_t_9) < 0) __PYX_ERR(0, 808, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0809:       for xx in x.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_11 = __pyx_t_9; __Pyx_INCREF(__pyx_t_11); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 809, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_17 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 809, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_16); __Pyx_INCREF(__pyx_t_9); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 809, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 809, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_16); __Pyx_INCREF(__pyx_t_9); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 809, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_11, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 809, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_17(__pyx_t_11);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 809, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0810:         x.delivery_location_list[xx] = []
      __pyx_t_9 = PyList_New(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 810, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 810, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0811:         x.delivery_location_list[xx].append(xx)
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_10, __pyx_v_xx); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0812:         x.daily_supplies_full[xx + '_' +  xx + '_recharged'] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = PyNumber_Add(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_9, __pyx_t_10) < 0)) __PYX_ERR(0, 812, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0813:         x.deliveries[xx][xx + '_recharged'] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_9);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_v_xx, __pyx_n_u_recharged); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_7, __pyx_t_10) < 0)) __PYX_ERR(0, 813, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0814:       for wb in self.waterbank_list:
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 814, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
      __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 814, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_17 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 814, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 814, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 814, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 814, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_17(__pyx_t_10);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 814, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_XDECREF_SET(__pyx_v_wb, __pyx_t_11);
      __pyx_t_11 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0815:         for xx in x.district_list:
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
        __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_19 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 815, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      for (;;) {
        if (likely(!__pyx_t_19)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_18); __Pyx_INCREF(__pyx_t_11); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 815, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_18); __Pyx_INCREF(__pyx_t_11); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 815, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          }
        } else {
          __pyx_t_11 = __pyx_t_19(__pyx_t_7);
          if (unlikely(!__pyx_t_11)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 815, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_11);
        __pyx_t_11 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0816:           x.delivery_location_list[xx].append(wb.key)
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 816, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 816, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 816, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_9, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 816, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0817:           x.daily_supplies_full[xx + '_' + wb.key + '_recharged'] = np.zeros(self.T)
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_11 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_9);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_n_u_recharged); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_5, __pyx_t_11) < 0)) __PYX_ERR(0, 817, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0818:           x.deliveries[xx][wb.key + '_recharged'] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_11 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_11) < 0)) __PYX_ERR(0, 818, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0819:       for lb in self.leiu_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_7 = __pyx_t_10; __Pyx_INCREF(__pyx_t_7); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 819, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_17 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 819, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 819, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 819, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_17(__pyx_t_7);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 819, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_lb, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0820:         for xx in x.district_list:
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 820, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
        __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 820, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_19 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 820, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      for (;;) {
        if (likely(!__pyx_t_19)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
            #else
            __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 820, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 820, __pyx_L1_error)
            #else
            __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 820, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            #endif
          }
        } else {
          __pyx_t_10 = __pyx_t_19(__pyx_t_11);
          if (unlikely(!__pyx_t_10)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 820, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_10);
        __pyx_t_10 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0821:           x.delivery_location_list[xx].append(lb.key)
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 821, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 821, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 821, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0822:           x.daily_supplies_full[xx + '_' + lb.key + '_recharged'] = np.zeros(self.T)
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = PyNumber_Add(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_Add(__pyx_t_9, __pyx_n_u_recharged); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_10) < 0)) __PYX_ERR(0, 822, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0823:           x.deliveries[xx][lb.key + '_recharged'] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_10 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_9, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = PyNumber_Add(__pyx_t_5, __pyx_n_u_recharged); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_9, __pyx_t_10) < 0)) __PYX_ERR(0, 823, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0824:     for x in self.city_list:
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
    __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
    __pyx_t_13 = NULL;
  } else {
    __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 824, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  for (;;) {
    if (likely(!__pyx_t_13)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 824, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 824, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      } else {
        if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 824, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 824, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      }
    } else {
      __pyx_t_8 = __pyx_t_13(__pyx_t_7);
      if (unlikely(!__pyx_t_8)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 824, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
    __pyx_t_8 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0825:       x.delivery_location_list = {}
    __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list, __pyx_t_8) < 0) __PYX_ERR(0, 825, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0826:       for xx in x.district_list:
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 826, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
      __pyx_t_11 = __pyx_t_8; __Pyx_INCREF(__pyx_t_11); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 826, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_17 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 826, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_16); __Pyx_INCREF(__pyx_t_8); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 826, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_16); __Pyx_INCREF(__pyx_t_8); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 826, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_17(__pyx_t_11);
        if (unlikely(!__pyx_t_8)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 826, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0827:         x.delivery_location_list[xx] = []
      __pyx_t_8 = PyList_New(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 827, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 827, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_xx, __pyx_t_8) < 0)) __PYX_ERR(0, 827, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0828:         x.delivery_location_list[xx].append(xx)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 828, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_10, __pyx_v_xx); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 828, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0829:         x.daily_supplies_full[xx + '_' +  xx + '_recharged'] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_6, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_8, __pyx_t_10) < 0)) __PYX_ERR(0, 829, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0830:         x.deliveries[xx][xx + '_recharged'] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_6, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_Add(__pyx_v_xx, __pyx_n_u_recharged); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_9, __pyx_t_10) < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0831:       for wb in self.waterbank_list:
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 831, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
      __pyx_t_10 = __pyx_t_11; __Pyx_INCREF(__pyx_t_10); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_17 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 831, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 831, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_16); __Pyx_INCREF(__pyx_t_11); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_10, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 831, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_17(__pyx_t_10);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 831, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_XDECREF_SET(__pyx_v_wb, __pyx_t_11);
      __pyx_t_11 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0832:         for xx in x.district_list:
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 832, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
        __pyx_t_9 = __pyx_t_11; __Pyx_INCREF(__pyx_t_9); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 832, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_19 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 832, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      for (;;) {
        if (likely(!__pyx_t_19)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_18); __Pyx_INCREF(__pyx_t_11); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 832, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 832, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_18); __Pyx_INCREF(__pyx_t_11); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 832, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_9, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 832, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          }
        } else {
          __pyx_t_11 = __pyx_t_19(__pyx_t_9);
          if (unlikely(!__pyx_t_11)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 832, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_11);
        __pyx_t_11 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0833:           x.delivery_location_list[xx].append(wb.key)
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_8, __pyx_t_11); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 833, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0834:           x.daily_supplies_full[xx + '_' + wb.key + '_recharged'] = np.zeros(self.T)
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_11 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_8);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyNumber_Add(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_n_u_recharged); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_5, __pyx_t_11) < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0835:           x.deliveries[xx][wb.key + '_recharged'] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
          }
        }
        __pyx_t_11 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_5);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = PyNumber_Add(__pyx_t_6, __pyx_n_u_recharged); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_4, __pyx_t_11) < 0)) __PYX_ERR(0, 835, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0836:       for lb in self.leiu_list:
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 836, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_9 = __pyx_t_10; __Pyx_INCREF(__pyx_t_9); __pyx_t_16 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_16 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 836, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_17 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 836, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 836, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 836, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 836, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_9, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 836, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_17(__pyx_t_9);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 836, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_lb, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0837:         for xx in x.district_list:
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
        __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_18 = 0;
        __pyx_t_19 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_19 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 837, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      for (;;) {
        if (likely(!__pyx_t_19)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 837, __pyx_L1_error)
            #else
            __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 837, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_18); __Pyx_INCREF(__pyx_t_10); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 837, __pyx_L1_error)
            #else
            __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 837, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            #endif
          }
        } else {
          __pyx_t_10 = __pyx_t_19(__pyx_t_11);
          if (unlikely(!__pyx_t_10)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 837, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_10);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_10);
        __pyx_t_10 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0838:           x.delivery_location_list[xx].append(lb.key)
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_location_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 838, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 838, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 838, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_15 = __Pyx_PyObject_Append(__pyx_t_4, __pyx_t_10); if (unlikely(__pyx_t_15 == ((int)-1))) __PYX_ERR(0, 838, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0839:           x.daily_supplies_full[xx + '_' + lb.key + '_recharged'] = np.zeros(self.T)
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_10 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_4);
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_daily_supplies_full); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyNumber_Add(__pyx_v_xx, __pyx_n_u__12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = PyNumber_Add(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_Add(__pyx_t_8, __pyx_n_u_recharged); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_10) < 0)) __PYX_ERR(0, 839, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+0840:           x.deliveries[xx][lb.key + '_recharged'] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
          }
        }
        __pyx_t_10 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_8, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_6);
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_lb, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PyNumber_Add(__pyx_t_5, __pyx_n_u_recharged); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_8, __pyx_t_10) < 0)) __PYX_ERR(0, 840, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 0841: 
+0842:     if self.model_mode == 'validation':
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_14) {
/* … */
    goto __pyx_L36;
  }
+0843:       self.semitropic.inleiubanked['MET'] = 175.8
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_MET, __pyx_float_175_8) < 0)) __PYX_ERR(0, 843, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0844:       self.semitropic.inleiubanked['SOB'] = 46.0
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 844, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 844, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_SOB, __pyx_float_46_0) < 0)) __PYX_ERR(0, 844, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0845:       self.kwb.banked['ID4'] = 91.7
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_banked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_ID4, __pyx_float_91_7) < 0)) __PYX_ERR(0, 845, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0846:       self.kwb.banked['DLR'] = 260.0 * 0.0962/ 0.9038
    __pyx_t_9 = PyFloat_FromDouble(((260.0 * 0.0962) / 0.9038)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_DLR, __pyx_t_9) < 0)) __PYX_ERR(0, 846, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0847:       self.kwb.banked['SMI'] = 260.0 * 0.0667/ 0.9038
    __pyx_t_9 = PyFloat_FromDouble(((260.0 * 0.0667) / 0.9038)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 847, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 847, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_banked); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 847, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_SMI, __pyx_t_9) < 0)) __PYX_ERR(0, 847, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0848:       self.kwb.banked['TJC'] = 260.0 * 0.02/ 0.9038
    __pyx_t_9 = PyFloat_FromDouble(((260.0 * 0.02) / 0.9038)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 848, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_TJC, __pyx_t_9) < 0)) __PYX_ERR(0, 848, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0849:       self.kwb.banked['WON'] = 260.0 * 0.4806/ 0.9038
    __pyx_t_9 = PyFloat_FromDouble(((260.0 * 0.4806) / 0.9038)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_banked); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_WON, __pyx_t_9) < 0)) __PYX_ERR(0, 849, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0850:       self.kwb.banked['WRM'] = 260.0 * 0.2403/ 0.9038
    __pyx_t_9 = PyFloat_FromDouble(((260.0 * 0.2403) / 0.9038)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 850, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 850, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 850, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_WRM, __pyx_t_9) < 0)) __PYX_ERR(0, 850, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0851:     elif self.model_mode == 'simulation':
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 851, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_simulation, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 851, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_14) {
/* … */
  }
  __pyx_L36:;
+0852:       self.semitropic.inleiubanked['MET'] = 750.0
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 852, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 852, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_MET, __pyx_float_750_0) < 0)) __PYX_ERR(0, 852, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0853:       self.semitropic.inleiubanked['SOB'] = 750.0
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_SOB, __pyx_float_750_0) < 0)) __PYX_ERR(0, 853, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0854:       self.kwb.banked['ID4'] = 500.0
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_ID4, __pyx_float_500_0) < 0)) __PYX_ERR(0, 854, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0855:       self.kwb.banked['DLR'] = 500.0
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_banked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_DLR, __pyx_float_500_0) < 0)) __PYX_ERR(0, 855, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0856:       self.kwb.banked['SMI'] = 500.0
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_SMI, __pyx_float_500_0) < 0)) __PYX_ERR(0, 856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0857:       self.kwb.banked['TJC'] = 500.0
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 857, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_banked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 857, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_TJC, __pyx_float_500_0) < 0)) __PYX_ERR(0, 857, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0858:       self.kwb.banked['WON'] = 500.0
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_n_u_WON, __pyx_float_500_0) < 0)) __PYX_ERR(0, 858, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+0859:       self.kwb.banked['WRM'] = 500.0
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_banked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 859, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_n_u_WRM, __pyx_float_500_0) < 0)) __PYX_ERR(0, 859, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0860: 
+0861:   def initialize_canals(self, scenario = 'baseline'):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_21initialize_canals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_21initialize_canals = {"initialize_canals", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_21initialize_canals, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_21initialize_canals(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_canals (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scenario,0};
    PyObject* values[2] = {0,0};
    values[1] = ((PyObject *)((PyObject*)__pyx_n_u_baseline));
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario);
          if (value) { values[1] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "initialize_canals") < 0)) __PYX_ERR(0, 861, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_self = values[0];
    __pyx_v_scenario = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("initialize_canals", 0, 1, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 861, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_canals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_20initialize_canals(__pyx_self, __pyx_v_self, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_20initialize_canals(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_scenario) {
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__13)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("initialize_canals", 0);
  __Pyx_TraceCall("initialize_canals", __pyx_f[0], 861, 0, __PYX_ERR(0, 861, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.initialize_canals", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__98 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_scenario); if (unlikely(!__pyx_tuple__98)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__98);
  __Pyx_GIVEREF(__pyx_tuple__98);
  __pyx_codeobj__13 = (PyObject*)__Pyx_PyCode_New(2, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__98, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_initialize_canals, 861, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__13)) __PYX_ERR(0, 861, __pyx_L1_error)
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_21initialize_canals, 0, __pyx_n_s_Model_initialize_canals, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__13)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_2, __pyx_tuple__99);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_initialize_canals, __pyx_t_2) < 0) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_tuple__99 = PyTuple_Pack(1, ((PyObject*)__pyx_n_u_baseline)); if (unlikely(!__pyx_tuple__99)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__99);
  __Pyx_GIVEREF(__pyx_tuple__99);
 0862:     ############################################################################
 0863:     ###Canal Initialization
 0864: 	############################################################################
 0865:     #Waterways
+0866:     if (scenario == 'baseline'):
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 866, __pyx_L1_error)
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+0867:       self.fkc = Canal('fkc', 'FKC')
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 867, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fkc, __pyx_t_2) < 0) __PYX_ERR(0, 867, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__14 = PyTuple_Pack(2, __pyx_n_u_fkc, __pyx_n_u_FKC); if (unlikely(!__pyx_tuple__14)) __PYX_ERR(0, 867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__14);
  __Pyx_GIVEREF(__pyx_tuple__14);
+0868:     elif (scenario['FKC'] == 'baseline'):
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+0869:       self.fkc = Canal('fkc', 'FKC')
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 869, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fkc, __pyx_t_2) < 0) __PYX_ERR(0, 869, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 0870:     else:
+0871:       self.fkc = Canal('fkc', 'FKC', scenario['FKC'])
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_fkc);
    __Pyx_GIVEREF(__pyx_n_u_fkc);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_fkc);
    __Pyx_INCREF(__pyx_n_u_FKC);
    __Pyx_GIVEREF(__pyx_n_u_FKC);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_FKC);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_fkc, __pyx_t_2) < 0) __PYX_ERR(0, 871, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L3:;
 0872: 
+0873:     self.xvc = Canal('xvc', 'XVC')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_xvc, __pyx_t_2) < 0) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__15 = PyTuple_Pack(2, __pyx_n_u_xvc, __pyx_n_u_XVC); if (unlikely(!__pyx_tuple__15)) __PYX_ERR(0, 873, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__15);
  __Pyx_GIVEREF(__pyx_tuple__15);
+0874:     self.madera = Canal('madera', 'MDC')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__16, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_madera, __pyx_t_2) < 0) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__16 = PyTuple_Pack(2, __pyx_n_u_madera, __pyx_n_u_MDC); if (unlikely(!__pyx_tuple__16)) __PYX_ERR(0, 874, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__16);
  __Pyx_GIVEREF(__pyx_tuple__16);
+0875:     self.calaqueduct = Canal('calaqueduct', 'CAA')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__17, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct, __pyx_t_2) < 0) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__17 = PyTuple_Pack(2, __pyx_n_u_calaqueduct, __pyx_n_u_CAA); if (unlikely(!__pyx_tuple__17)) __PYX_ERR(0, 875, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__17);
  __Pyx_GIVEREF(__pyx_tuple__17);
+0876:     self.kwbcanal = Canal('kwbcanal', 'KBC')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__18, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal, __pyx_t_2) < 0) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__18 = PyTuple_Pack(2, __pyx_n_u_kwbcanal, __pyx_n_u_KBC); if (unlikely(!__pyx_tuple__18)) __PYX_ERR(0, 876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__18);
  __Pyx_GIVEREF(__pyx_tuple__18);
+0877:     self.aecanal = Canal('aecanal', 'AEC')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__19, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_aecanal, __pyx_t_2) < 0) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__19 = PyTuple_Pack(2, __pyx_n_u_aecanal, __pyx_n_u_AEC); if (unlikely(!__pyx_tuple__19)) __PYX_ERR(0, 877, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__19);
  __Pyx_GIVEREF(__pyx_tuple__19);
+0878:     self.kerncanal = Canal('kerncanal', 'KNC')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__20, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal, __pyx_t_2) < 0) __PYX_ERR(0, 878, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__20 = PyTuple_Pack(2, __pyx_n_u_kerncanal, __pyx_n_u_KNC); if (unlikely(!__pyx_tuple__20)) __PYX_ERR(0, 878, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__20);
  __Pyx_GIVEREF(__pyx_tuple__20);
+0879:     self.calloway = Canal('calloway', 'CWY')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_calloway, __pyx_t_2) < 0) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__21 = PyTuple_Pack(2, __pyx_n_u_calloway, __pyx_n_u_CWY); if (unlikely(!__pyx_tuple__21)) __PYX_ERR(0, 879, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__21);
  __Pyx_GIVEREF(__pyx_tuple__21);
+0880:     self.lerdo = Canal('lerdo', 'LRD')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__22, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_lerdo, __pyx_t_2) < 0) __PYX_ERR(0, 880, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__22 = PyTuple_Pack(2, __pyx_n_u_lerdo, __pyx_n_u_LRD); if (unlikely(!__pyx_tuple__22)) __PYX_ERR(0, 880, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__22);
  __Pyx_GIVEREF(__pyx_tuple__22);
+0881:     self.beardsley = Canal('beardsley', 'BLY')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_beardsley, __pyx_t_2) < 0) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__23 = PyTuple_Pack(2, __pyx_n_u_beardsley, __pyx_n_u_BLY); if (unlikely(!__pyx_tuple__23)) __PYX_ERR(0, 881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__23);
  __Pyx_GIVEREF(__pyx_tuple__23);
+0882:     self.kernriverchannel = Canal('kernriverchannel', 'KNR')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel, __pyx_t_2) < 0) __PYX_ERR(0, 882, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__24 = PyTuple_Pack(2, __pyx_n_u_kernriverchannel, __pyx_n_u_KNR); if (unlikely(!__pyx_tuple__24)) __PYX_ERR(0, 882, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__24);
  __Pyx_GIVEREF(__pyx_tuple__24);
+0883:     self.kaweahriverchannel = Canal('kaweahriverchannel', 'KWR')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__25, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel, __pyx_t_2) < 0) __PYX_ERR(0, 883, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__25 = PyTuple_Pack(2, __pyx_n_u_kaweahriverchannel, __pyx_n_u_KWR); if (unlikely(!__pyx_tuple__25)) __PYX_ERR(0, 883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__25);
  __Pyx_GIVEREF(__pyx_tuple__25);
+0884:     self.tuleriverchannel = Canal('tuleriverchannel', 'TLR')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel, __pyx_t_2) < 0) __PYX_ERR(0, 884, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__26 = PyTuple_Pack(2, __pyx_n_u_tuleriverchannel, __pyx_n_u_TLR); if (unlikely(!__pyx_tuple__26)) __PYX_ERR(0, 884, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__26);
  __Pyx_GIVEREF(__pyx_tuple__26);
+0885:     self.kingsriverchannel = Canal('kingsriverchannel', 'KGR')
  __pyx_t_2 = __Pyx_PyObject_Call(((PyObject *)__pyx_ptype_14calfews_src_cy_8canal_cy_Canal), __pyx_tuple__27, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_kingsriverchannel, __pyx_t_2) < 0) __PYX_ERR(0, 885, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
/* … */
  __pyx_tuple__27 = PyTuple_Pack(2, __pyx_n_u_kingsriverchannel, __pyx_n_u_KGR); if (unlikely(!__pyx_tuple__27)) __PYX_ERR(0, 885, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__27);
  __Pyx_GIVEREF(__pyx_tuple__27);
 0886: 
+0887:     self.canal_list = [self.fkc, self.madera, self.xvc, self.calaqueduct, self.kwbcanal, self.aecanal, self.kerncanal, self.calloway, self.lerdo, self.beardsley, self.kernriverchannel, self.kaweahriverchannel, self.tuleriverchannel, self.kingsriverchannel]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_madera); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_aecanal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calloway); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lerdo); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_beardsley); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriverchannel); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = PyList_New(14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_16, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_16, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_16, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_16, 3, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_16, 4, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_16, 5, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_16, 6, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_16, 7, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_16, 8, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_16, 9, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_16, 10, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_16, 11, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_16, 12, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_16, 13, __pyx_t_15);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  __pyx_t_14 = 0;
  __pyx_t_15 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_list, __pyx_t_16) < 0) __PYX_ERR(0, 887, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
 0888: 
 0889:     #initialize variables to store pumping from delta	
+0890:     self.trp_pumping = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_trp_pumping, __pyx_t_16) < 0) __PYX_ERR(0, 890, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0891:     self.hro_pumping = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_hro_pumping, __pyx_t_16) < 0) __PYX_ERR(0, 891, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0892:     self.cvp_allocation = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_cvp_allocation, __pyx_t_16) < 0) __PYX_ERR(0, 892, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0893:     self.swp_allocation = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation, __pyx_t_16) < 0) __PYX_ERR(0, 893, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0894:     self.annual_SWP = np.zeros(self.number_years)
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_annual_SWP, __pyx_t_16) < 0) __PYX_ERR(0, 894, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0895:     self.annual_CVP = np.zeros(self.number_years)
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_annual_CVP, __pyx_t_16) < 0) __PYX_ERR(0, 895, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0896:     self.ytd_pump_trp = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_13, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 896, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_trp, __pyx_t_16) < 0) __PYX_ERR(0, 896, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+0897:     self.ytd_pump_hro = np.zeros(self.T)
  __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_13)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
    }
  }
  __pyx_t_16 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_13, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_14);
  __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_hro, __pyx_t_16) < 0) __PYX_ERR(0, 897, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
 0898: 
 0899: 
 0900: 
+0901:   def create_object_associations(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_23create_object_associations(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_23create_object_associations = {"create_object_associations", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_23create_object_associations, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_23create_object_associations(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("create_object_associations (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_22create_object_associations(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_22create_object_associations(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_key = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_canal_member = NULL;
  PyObject *__pyx_v_z = NULL;
  PyObject *__pyx_v_res = NULL;
  long __pyx_v_use_reservoir;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_district_name = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_reservoir = NULL;
  PyObject *__pyx_v_canal_to_reservoir = NULL;
  CYTHON_UNUSED PyObject *__pyx_8genexpr2__pyx_v__ = NULL;
  CYTHON_UNUSED PyObject *__pyx_8genexpr3__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__28)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("create_object_associations", 0);
  __Pyx_TraceCall("create_object_associations", __pyx_f[0], 901, 0, __PYX_ERR(0, 901, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_XDECREF(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_XDECREF(__pyx_t_28);
  __Pyx_XDECREF(__pyx_t_29);
  __Pyx_XDECREF(__pyx_t_30);
  __Pyx_XDECREF(__pyx_t_31);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.create_object_associations", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_canal_member);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_district_name);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_reservoir);
  __Pyx_XDECREF(__pyx_v_canal_to_reservoir);
  __Pyx_XDECREF(__pyx_8genexpr2__pyx_v__);
  __Pyx_XDECREF(__pyx_8genexpr3__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__100 = PyTuple_Pack(17, __pyx_n_s_self, __pyx_n_s_key, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_district_object, __pyx_n_s_y, __pyx_n_s_canal_member, __pyx_n_s_z, __pyx_n_s_res, __pyx_n_s_use_reservoir, __pyx_n_s_yy, __pyx_n_s_district_name, __pyx_n_s_district, __pyx_n_s_reservoir, __pyx_n_s_canal_to_reservoir, __pyx_n_s__12, __pyx_n_s__12); if (unlikely(!__pyx_tuple__100)) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__100);
  __Pyx_GIVEREF(__pyx_tuple__100);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_23create_object_associations, 0, __pyx_n_s_Model_create_object_associations, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__28)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_create_object_associations, __pyx_t_2) < 0) __PYX_ERR(0, 901, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__28 = (PyObject*)__Pyx_PyCode_New(1, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__100, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_create_object_associations, 901, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__28)) __PYX_ERR(0, 901, __pyx_L1_error)
 0902:     ##Canal Structure Dictionary
 0903:     #This is the dictionary that holds the structure of the canal system.  The dictionary is made up of lists, with the objects in the lists representing delivery nodes on the canal (canal is denoted by dictionary key)
 0904: 	#Objects can be districts, waterbanks, or other canals.  Canal objects show an intersection with the canal represented by the dictionary 'key' that holds the list.  Dictionary keys are all canal keys.  If a canal is located on a list, the canal associated with that list's key will also be on the list associated with the canal of the first key (i.e., if self.fkc is on the list with the key 'self.canal_district['xvc'], then the object self.xvc will be on the list with the key self.canal_district['fkc'] - these intersections help to organize these lists into a structure that models the interconnected canal structure
 0905: 	#The first object on each list is either a reservoir or another canal
+0906:     self.canal_district = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_district, __pyx_t_1) < 0) __PYX_ERR(0, 906, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+0907:     self.canal_district['fkc'] = [self.millerton, self.fresno, self.fresnoid, self.kingsriverchannel, self.otherfriant, self.tulare, self.kaweahdelta, self.otherkaweah, self.kaweahriverchannel, self.exeter, self.lindsay, self.lindmore, self.porterville, self.lowertule, self.othertule, self.tuleriverchannel, self.teapot, self.saucelito, self.terra, self.othercrossvalley, self.pixley, self.delano, self.kerntulare, self.sosanjoaquin, self.shaffer, self.northkern, self.northkernwb, self.xvc, self.kernriverchannel, self.aecanal]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fresno); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fresnoid); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriverchannel); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherfriant); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tulare); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahdelta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherkaweah); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exeter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lindsay); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lindmore); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_porterville); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lowertule); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othertule); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_teapot); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_saucelito); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_terra); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othercrossvalley); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pixley); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delano); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerntulare); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sosanjoaquin); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shaffer); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_25);
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkern); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkernwb); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_28);
  __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_29);
  __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_aecanal); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_30);
  __pyx_t_31 = PyList_New(30); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_31);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_31, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_31, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_31, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_31, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_31, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_31, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_31, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_31, 7, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_31, 8, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_31, 9, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_31, 10, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_31, 11, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_31, 12, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_31, 13, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_31, 14, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_31, 15, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_31, 16, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_31, 17, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_31, 18, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_31, 19, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_21);
  PyList_SET_ITEM(__pyx_t_31, 20, __pyx_t_21);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_31, 21, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_23);
  PyList_SET_ITEM(__pyx_t_31, 22, __pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_24);
  PyList_SET_ITEM(__pyx_t_31, 23, __pyx_t_24);
  __Pyx_GIVEREF(__pyx_t_25);
  PyList_SET_ITEM(__pyx_t_31, 24, __pyx_t_25);
  __Pyx_GIVEREF(__pyx_t_26);
  PyList_SET_ITEM(__pyx_t_31, 25, __pyx_t_26);
  __Pyx_GIVEREF(__pyx_t_27);
  PyList_SET_ITEM(__pyx_t_31, 26, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_28);
  PyList_SET_ITEM(__pyx_t_31, 27, __pyx_t_28);
  __Pyx_GIVEREF(__pyx_t_29);
  PyList_SET_ITEM(__pyx_t_31, 28, __pyx_t_29);
  __Pyx_GIVEREF(__pyx_t_30);
  PyList_SET_ITEM(__pyx_t_31, 29, __pyx_t_30);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  __pyx_t_14 = 0;
  __pyx_t_15 = 0;
  __pyx_t_16 = 0;
  __pyx_t_17 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_20 = 0;
  __pyx_t_21 = 0;
  __pyx_t_22 = 0;
  __pyx_t_23 = 0;
  __pyx_t_24 = 0;
  __pyx_t_25 = 0;
  __pyx_t_26 = 0;
  __pyx_t_27 = 0;
  __pyx_t_28 = 0;
  __pyx_t_29 = 0;
  __pyx_t_30 = 0;
  __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_30);
  if (unlikely(PyObject_SetItem(__pyx_t_30, __pyx_n_u_fkc, __pyx_t_31) < 0)) __PYX_ERR(0, 907, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_30); __pyx_t_30 = 0;
  __Pyx_DECREF(__pyx_t_31); __pyx_t_31 = 0;
+0908:     self.canal_district['mdc'] = [self.millerton, self.maderairr, self.chowchilla]
  __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_31);
  __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_maderairr); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_30);
  __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_chowchilla); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_29);
  __pyx_t_28 = PyList_New(3); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_28);
  __Pyx_GIVEREF(__pyx_t_31);
  PyList_SET_ITEM(__pyx_t_28, 0, __pyx_t_31);
  __Pyx_GIVEREF(__pyx_t_30);
  PyList_SET_ITEM(__pyx_t_28, 1, __pyx_t_30);
  __Pyx_GIVEREF(__pyx_t_29);
  PyList_SET_ITEM(__pyx_t_28, 2, __pyx_t_29);
  __pyx_t_31 = 0;
  __pyx_t_30 = 0;
  __pyx_t_29 = 0;
  __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_29);
  if (unlikely(PyObject_SetItem(__pyx_t_29, __pyx_n_u_mdc, __pyx_t_28) < 0)) __PYX_ERR(0, 908, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_29); __pyx_t_29 = 0;
  __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
+0909:     self.canal_district['caa'] = [self.sanluis, self.southbay, self.sanluiswater, self.panoche, self.delpuerto, self.otherswp, self.othercvp, self.otherexchange, self.westlands, self.centralcoast, self.tularelake, self.dudleyridge, self.losthills, self.berrenda, self.belridge, self.semitropic, self.buenavista, self.wkwb, self.xvc, self.kwbcanal, self.kernriverchannel, self.henrymiller, self.wheeler, self.aecanal, self.tejon, self.tehachapi, self.socal]
  __pyx_t_28 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_28)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_28);
  __pyx_t_29 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_29)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_29);
  __pyx_t_30 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluiswater); if (unlikely(!__pyx_t_30)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_30);
  __pyx_t_31 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_panoche); if (unlikely(!__pyx_t_31)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_31);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delpuerto); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherswp); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othercvp); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_25);
  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherexchange); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westlands); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tularelake); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dudleyridge); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_losthills); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wkwb); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_henrymiller); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wheeler); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_aecanal); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tejon); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tehachapi); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyList_New(27); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_28);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_28);
  __Pyx_GIVEREF(__pyx_t_29);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_29);
  __Pyx_GIVEREF(__pyx_t_30);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_30);
  __Pyx_GIVEREF(__pyx_t_31);
  PyList_SET_ITEM(__pyx_t_4, 3, __pyx_t_31);
  __Pyx_GIVEREF(__pyx_t_27);
  PyList_SET_ITEM(__pyx_t_4, 4, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_26);
  PyList_SET_ITEM(__pyx_t_4, 5, __pyx_t_26);
  __Pyx_GIVEREF(__pyx_t_25);
  PyList_SET_ITEM(__pyx_t_4, 6, __pyx_t_25);
  __Pyx_GIVEREF(__pyx_t_24);
  PyList_SET_ITEM(__pyx_t_4, 7, __pyx_t_24);
  __Pyx_GIVEREF(__pyx_t_23);
  PyList_SET_ITEM(__pyx_t_4, 8, __pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_4, 9, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_21);
  PyList_SET_ITEM(__pyx_t_4, 10, __pyx_t_21);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_4, 11, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_4, 12, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_4, 13, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_4, 14, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_4, 15, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_4, 16, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_4, 17, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_4, 18, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_4, 19, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_4, 20, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_4, 21, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_4, 22, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_4, 23, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_4, 24, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_4, 25, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_4, 26, __pyx_t_5);
  __pyx_t_28 = 0;
  __pyx_t_29 = 0;
  __pyx_t_30 = 0;
  __pyx_t_31 = 0;
  __pyx_t_27 = 0;
  __pyx_t_26 = 0;
  __pyx_t_25 = 0;
  __pyx_t_24 = 0;
  __pyx_t_23 = 0;
  __pyx_t_22 = 0;
  __pyx_t_21 = 0;
  __pyx_t_20 = 0;
  __pyx_t_19 = 0;
  __pyx_t_18 = 0;
  __pyx_t_17 = 0;
  __pyx_t_16 = 0;
  __pyx_t_15 = 0;
  __pyx_t_14 = 0;
  __pyx_t_13 = 0;
  __pyx_t_12 = 0;
  __pyx_t_11 = 0;
  __pyx_t_10 = 0;
  __pyx_t_9 = 0;
  __pyx_t_8 = 0;
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_caa, __pyx_t_4) < 0)) __PYX_ERR(0, 909, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0910:     self.canal_district['xvc'] = [self.calaqueduct, self.buenavista, self.kwb, self.irvineranch, self.pioneer, self.b2800, self.berrendawb, self.rosedale, self.ID4, self.kernriverchannel, self.fkc, self.aecanal, self.beardsley]
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pioneer); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_b2800); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrendawb); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ID4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_aecanal); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_beardsley); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = PyList_New(13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_17, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_17, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_17, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_17, 3, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_17, 4, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_17, 5, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_17, 6, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_17, 7, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_17, 8, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_17, 9, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_17, 10, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_17, 11, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_17, 12, __pyx_t_16);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_9 = 0;
  __pyx_t_10 = 0;
  __pyx_t_11 = 0;
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  __pyx_t_14 = 0;
  __pyx_t_15 = 0;
  __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_n_u_xvc, __pyx_t_17) < 0)) __PYX_ERR(0, 910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+0911:     self.canal_district['kbc'] = [self.calaqueduct, self.kwb, self.kerncanal]
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = PyList_New(3); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_14, 1, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_14, 2, __pyx_t_15);
  __pyx_t_17 = 0;
  __pyx_t_16 = 0;
  __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_n_u_kbc, __pyx_t_14) < 0)) __PYX_ERR(0, 911, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+0912:     self.canal_district['aec'] = [self.fkc, self.xvc, self.kernriverchannel, self.arvin, self.calaqueduct]
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_arvin); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_12 = PyList_New(5); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_12, 1, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_12, 2, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_12, 3, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_12, 4, __pyx_t_13);
  __pyx_t_14 = 0;
  __pyx_t_15 = 0;
  __pyx_t_16 = 0;
  __pyx_t_17 = 0;
  __pyx_t_13 = 0;
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_n_u_aec, __pyx_t_12) < 0)) __PYX_ERR(0, 912, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+0913:     self.canal_district['knr'] = [self.isabella, self.calloway, self.kerndelta, self.lerdo, self.xvc, self.aecanal, self.fkc, self.kerncanal, self.rosedale, self.bakersfield, self.berrendawb, self.b2800, self.pioneer, self.kwb, self.buenavista, self.calaqueduct]
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calloway); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lerdo); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_aecanal); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_bakersfield); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrendawb); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_b2800); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pioneer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = PyList_New(16); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_12);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_12);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_17);
  PyList_SET_ITEM(__pyx_t_20, 2, __pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_16);
  PyList_SET_ITEM(__pyx_t_20, 3, __pyx_t_16);
  __Pyx_GIVEREF(__pyx_t_15);
  PyList_SET_ITEM(__pyx_t_20, 4, __pyx_t_15);
  __Pyx_GIVEREF(__pyx_t_14);
  PyList_SET_ITEM(__pyx_t_20, 5, __pyx_t_14);
  __Pyx_GIVEREF(__pyx_t_11);
  PyList_SET_ITEM(__pyx_t_20, 6, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_20, 7, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_20, 8, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_20, 9, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_20, 10, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 11, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 12, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_20, 13, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 14, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_20, 15, __pyx_t_19);
  __pyx_t_12 = 0;
  __pyx_t_13 = 0;
  __pyx_t_17 = 0;
  __pyx_t_16 = 0;
  __pyx_t_15 = 0;
  __pyx_t_14 = 0;
  __pyx_t_11 = 0;
  __pyx_t_10 = 0;
  __pyx_t_9 = 0;
  __pyx_t_8 = 0;
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_n_u_knr, __pyx_t_20) < 0)) __PYX_ERR(0, 913, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0914:     self.canal_district['knc'] = [self.kernriverchannel, self.kerndelta, self.ID4, self.pioneer, self.buenavista, self.kwb]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ID4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pioneer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_t_6);
  __pyx_t_20 = 0;
  __pyx_t_19 = 0;
  __pyx_t_18 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_knc, __pyx_t_7) < 0)) __PYX_ERR(0, 914, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0915:     #self.canal_district['gsl'] = [self.kernriverchannel, self.xvc, self.rosedale21]
+0916:     self.canal_district['cwy'] = [self.kernriverchannel, self.beardsley, self.cawelo, self.northkern, self.poso, self.northkernwb]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_beardsley); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cawelo); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkern); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkernwb); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = PyList_New(6); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_20, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 4, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_20, 5, __pyx_t_19);
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_n_u_cwy, __pyx_t_20) < 0)) __PYX_ERR(0, 916, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0917:     self.canal_district['lrd'] = [self.kernriverchannel, self.cawelo, self.northkern, self.poso, self.northkernwb]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cawelo); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkern); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_northkernwb); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_6, 2, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_6, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_6, 4, __pyx_t_5);
  __pyx_t_20 = 0;
  __pyx_t_19 = 0;
  __pyx_t_18 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_lrd, __pyx_t_6) < 0)) __PYX_ERR(0, 917, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0918:     self.canal_district['bly'] = [self.xvc, self.calloway]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calloway); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_bly, __pyx_t_4) < 0)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0919:     self.canal_district['kwr'] = [self.kaweah, self.otherkaweah, self.tulare, self.fkc, self.kaweahdelta, self.tularelake]
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_otherkaweah); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tulare); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahdelta); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tularelake); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_t_20);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_kwr, __pyx_t_7) < 0)) __PYX_ERR(0, 919, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0920:     self.canal_district['tlr'] = [self.success, self.othertule, self.lowertule, self.porterville, self.fkc, self.tularelake]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_othertule); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lowertule); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_porterville); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tularelake); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyList_New(6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_4, 3, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_4, 4, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_4, 5, __pyx_t_5);
  __pyx_t_7 = 0;
  __pyx_t_20 = 0;
  __pyx_t_19 = 0;
  __pyx_t_18 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_tlr, __pyx_t_4) < 0)) __PYX_ERR(0, 920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+0921:     self.canal_district['kgr'] = [self.pineflat, self.consolidated, self.alta, self.krwa, self.fresnoid, self.fkc, self.kaweahdelta, self.tularelake]
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_consolidated); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_alta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_krwa); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fresnoid); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_19);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahdelta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tularelake); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyList_New(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_19);
  PyList_SET_ITEM(__pyx_t_9, 4, __pyx_t_19);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_9, 5, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_9, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_9, 7, __pyx_t_8);
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_18 = 0;
  __pyx_t_19 = 0;
  __pyx_t_20 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_n_u_kgr, __pyx_t_9) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0922: 
+0923:     self.canal_district_len = {}
  __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len, __pyx_t_9) < 0) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0924:     for key in ['fkc','mdc','caa','xvc','kbc','aec','knr','knc','cwy','lrd','bly','kwr','tlr','kgr']:
  __pyx_t_9 = __pyx_tuple__29; __Pyx_INCREF(__pyx_t_9); __pyx_t_32 = 0;
  for (;;) {
    if (__pyx_t_32 >= 14) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_32); __Pyx_INCREF(__pyx_t_8); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 924, __pyx_L1_error)
    #else
    __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_8));
    __pyx_t_8 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
  __pyx_tuple__29 = PyTuple_Pack(14, __pyx_n_u_fkc, __pyx_n_u_mdc, __pyx_n_u_caa, __pyx_n_u_xvc, __pyx_n_u_kbc, __pyx_n_u_aec, __pyx_n_u_knr, __pyx_n_u_knc, __pyx_n_u_cwy, __pyx_n_u_lrd, __pyx_n_u_bly, __pyx_n_u_kwr, __pyx_n_u_tlr, __pyx_n_u_kgr); if (unlikely(!__pyx_tuple__29)) __PYX_ERR(0, 924, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__29);
  __Pyx_GIVEREF(__pyx_tuple__29);
+0925:       self.canal_district_len[key] = len(self.canal_district[key])
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_33 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_33 == ((Py_ssize_t)-1))) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyInt_FromSsize_t(__pyx_t_33); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_key, __pyx_t_7) < 0)) __PYX_ERR(0, 925, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 0926: 
+0927:     for x in self.private_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_34 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 927, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_32); __Pyx_INCREF(__pyx_t_9); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_32); __Pyx_INCREF(__pyx_t_9); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 927, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 927, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_34(__pyx_t_7);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 927, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0928:       x.seepage = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_seepage, __pyx_t_9) < 0) __PYX_ERR(0, 928, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0929:       x.must_fill = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 929, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_must_fill, __pyx_t_9) < 0) __PYX_ERR(0, 929, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0930:       x.seasonal_connection = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_seasonal_connection, __pyx_t_9) < 0) __PYX_ERR(0, 930, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0931:       for xx in x.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 931, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 931, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_35 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 931, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 931, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 931, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 931, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_35(__pyx_t_8);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 931, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0932:         district_object = self.district_keys[xx]
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 932, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 932, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_20);
      __pyx_t_20 = 0;
+0933:         x.seepage[xx] = district_object.seepage
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_seepage); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 933, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_seepage); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 933, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_xx, __pyx_t_20) < 0)) __PYX_ERR(0, 933, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0934:         x.must_fill[xx] = district_object.must_fill
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_must_fill); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 934, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_must_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 934, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_xx, __pyx_t_20) < 0)) __PYX_ERR(0, 934, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0935:         x.seasonal_connection[xx] = district_object.seasonal_connection
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_seasonal_connection); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_seasonal_connection); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_xx, __pyx_t_20) < 0)) __PYX_ERR(0, 935, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0936:     for x in self.city_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_8 = __pyx_t_7; __Pyx_INCREF(__pyx_t_8); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 936, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_34 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 936, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_32); __Pyx_INCREF(__pyx_t_7); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 936, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_32); __Pyx_INCREF(__pyx_t_7); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 936, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_8, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 936, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_34(__pyx_t_8);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 936, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0937:       x.seepage = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_seepage, __pyx_t_7) < 0) __PYX_ERR(0, 937, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0938:       x.must_fill = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_must_fill, __pyx_t_7) < 0) __PYX_ERR(0, 938, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0939:       x.seasonal_connection = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_seasonal_connection, __pyx_t_7) < 0) __PYX_ERR(0, 939, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0940:       for xx in x.district_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_20 = __pyx_t_7; __Pyx_INCREF(__pyx_t_20); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 940, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_35 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 940, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_20))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_20)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_33); __Pyx_INCREF(__pyx_t_7); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 940, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_20, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_33); __Pyx_INCREF(__pyx_t_7); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 940, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_20, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 940, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_35(__pyx_t_20);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 940, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0941:         district_object = self.district_keys[xx]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_9);
      __pyx_t_9 = 0;
+0942:         x.seepage[xx] = district_object.seepage
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_seepage); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_seepage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0943:         x.must_fill[xx] = district_object.must_fill
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_must_fill); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 943, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_must_fill); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 943, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 943, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0944:         x.seasonal_connection[xx] = district_object.seasonal_connection
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_seasonal_connection); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 944, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_seasonal_connection); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 944, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 944, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0945: 
 0946:     ###After the canal structure is defined, each of the nodes on the list
 0947:     ###has a demand initialized.  There are many different types of demands
 0948:     ###depending on the surface water availabilities
+0949:     for y in self.canal_list:
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
    __pyx_t_20 = __pyx_t_8; __Pyx_INCREF(__pyx_t_20); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __pyx_t_34 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 949, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_20))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_20)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_32); __Pyx_INCREF(__pyx_t_8); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 949, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_20, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 949, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_32); __Pyx_INCREF(__pyx_t_8); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 949, __pyx_L1_error)
        #else
        __pyx_t_8 = PySequence_ITEM(__pyx_t_20, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 949, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        #endif
      }
    } else {
      __pyx_t_8 = __pyx_t_34(__pyx_t_20);
      if (unlikely(!__pyx_t_8)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 949, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_8);
    }
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
    __pyx_t_8 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0950:       y.num_sites = self.canal_district_len[y.name]
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_num_sites, __pyx_t_7) < 0) __PYX_ERR(0, 950, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0951:       y.turnout_use = [0.0 for _ in range(y.num_sites)] ##how much water diverted at a node
    { /* enter inner scope */
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 951, __pyx_L17_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 951, __pyx_L17_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 951, __pyx_L17_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_9 = __pyx_t_8; __Pyx_INCREF(__pyx_t_9); __pyx_t_33 = 0;
        __pyx_t_35 = NULL;
      } else {
        __pyx_t_33 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 951, __pyx_L17_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_35 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 951, __pyx_L17_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_35)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_33); __Pyx_INCREF(__pyx_t_8); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 951, __pyx_L17_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 951, __pyx_L17_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_33); __Pyx_INCREF(__pyx_t_8); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 951, __pyx_L17_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 951, __pyx_L17_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_35(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 951, __pyx_L17_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr2__pyx_v__, __pyx_t_8);
        __pyx_t_8 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 951, __pyx_L17_error)
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v__); __pyx_8genexpr2__pyx_v__ = 0;
      goto __pyx_L20_exit_scope;
      __pyx_L17_error:;
      __Pyx_XDECREF(__pyx_8genexpr2__pyx_v__); __pyx_8genexpr2__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L20_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_turnout_use, __pyx_t_7) < 0) __PYX_ERR(0, 951, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0952:       y.flow = [0.0 for _ in range(y.num_sites+1)] ##how much water passing through a node (inc. diversions)
    { /* enter inner scope */
      __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 952, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 952, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L23_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
        __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_33 = 0;
        __pyx_t_35 = NULL;
      } else {
        __pyx_t_33 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 952, __pyx_L23_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_35 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 952, __pyx_L23_error)
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      for (;;) {
        if (likely(!__pyx_t_35)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 952, __pyx_L23_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L23_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          } else {
            if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 952, __pyx_L23_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 952, __pyx_L23_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          }
        } else {
          __pyx_t_9 = __pyx_t_35(__pyx_t_8);
          if (unlikely(!__pyx_t_9)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 952, __pyx_L23_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr3__pyx_v__, __pyx_t_9);
        __pyx_t_9 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_7, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 952, __pyx_L23_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF(__pyx_8genexpr3__pyx_v__); __pyx_8genexpr3__pyx_v__ = 0;
      goto __pyx_L26_exit_scope;
      __pyx_L23_error:;
      __Pyx_XDECREF(__pyx_8genexpr3__pyx_v__); __pyx_8genexpr3__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L26_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_flow, __pyx_t_7) < 0) __PYX_ERR(0, 952, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0953:       y.demand = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 953, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_demand, __pyx_t_7) < 0) __PYX_ERR(0, 953, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0954:       y.turnout_frac = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_turnout_frac, __pyx_t_7) < 0) __PYX_ERR(0, 954, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0955:       y.recovery_flow_frac = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 955, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_recovery_flow_frac, __pyx_t_7) < 0) __PYX_ERR(0, 955, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0956:       y.daily_flow = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_daily_flow, __pyx_t_7) < 0) __PYX_ERR(0, 956, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0957:       y.daily_turnout = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_daily_turnout, __pyx_t_7) < 0) __PYX_ERR(0, 957, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+0958:       for canal_member in self.canal_district[y.name]:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 958, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_35 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 958, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 958, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 958, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 958, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 958, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_35(__pyx_t_8);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 958, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_canal_member, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+0959:         y.daily_flow[canal_member.key] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
        }
      }
      __pyx_t_9 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_19, __pyx_t_18, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_daily_flow); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal_member, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_7, __pyx_t_9) < 0)) __PYX_ERR(0, 959, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0960:         y.daily_turnout[canal_member.key] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
        }
      }
      __pyx_t_9 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_19, __pyx_t_18, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_daily_turnout); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal_member, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_7, __pyx_t_9) < 0)) __PYX_ERR(0, 960, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 0961: 
+0962:       for z in ['contractor', 'turnout', 'excess', 'priority', 'secondary', 'initial', 'supplemental']:
    __pyx_t_8 = __pyx_tuple__30; __Pyx_INCREF(__pyx_t_8); __pyx_t_33 = 0;
    for (;;) {
      if (__pyx_t_33 >= 7) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_33); __Pyx_INCREF(__pyx_t_9); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 962, __pyx_L1_error)
      #else
      __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 962, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
/* … */
  __pyx_tuple__30 = PyTuple_Pack(7, __pyx_n_u_contractor, __pyx_n_u_turnout, __pyx_n_u_excess, __pyx_n_u_priority, __pyx_n_u_secondary, __pyx_n_u_initial, __pyx_n_u_supplemental); if (unlikely(!__pyx_tuple__30)) __PYX_ERR(0, 962, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__30);
  __Pyx_GIVEREF(__pyx_tuple__30);
+0963:         y.demand[z] = np.zeros(y.num_sites)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
        }
      }
      __pyx_t_9 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_19, __pyx_t_18, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_v_z, __pyx_t_9) < 0)) __PYX_ERR(0, 963, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0964:         y.turnout_frac[z] = np.zeros(y.num_sites)
      __Pyx_GetModuleGlobalName(__pyx_t_19, __pyx_n_s_np); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_18 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_9 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_18, __pyx_t_19) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_19);
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_z, __pyx_t_9) < 0)) __PYX_ERR(0, 964, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0965:         y.recovery_flow_frac[z] = np.ones(y.num_sites)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ones); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
        }
      }
      __pyx_t_9 = (__pyx_t_18) ? __Pyx_PyObject_Call2Args(__pyx_t_19, __pyx_t_18, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_19, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_v_z, __pyx_t_9) < 0)) __PYX_ERR(0, 965, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0966:       for z in [self.calaqueduct, self.fkc, self.madera, self.kernriverchannel, self.tuleriverchannel, self.kaweahriverchannel]:
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_madera); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = PyTuple_New(6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_19);
    PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_19);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_18);
    PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_t_18);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_t_6);
    __pyx_t_8 = 0;
    __pyx_t_9 = 0;
    __pyx_t_19 = 0;
    __pyx_t_7 = 0;
    __pyx_t_18 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_33 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (__pyx_t_33 >= 6) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_33); __Pyx_INCREF(__pyx_t_5); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 966, __pyx_L1_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 966, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0967:         y.demand[z.name] = np.zeros(y.num_sites)##for irrigation deliveries
      __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_19 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_19)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_19);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_5 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_19, __pyx_t_18) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_18);
      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_18, __pyx_t_5) < 0)) __PYX_ERR(0, 967, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0968:         y.turnout_frac[z] = np.zeros(y.num_sites)
      __Pyx_GetModuleGlobalName(__pyx_t_18, __pyx_n_s_np); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_19 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_19)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_19);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_5 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_19, __pyx_t_18) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_18);
      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_z, __pyx_t_5) < 0)) __PYX_ERR(0, 968, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0969:         y.recovery_flow_frac[z] = np.ones(y.num_sites)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_ones); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) {
        __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_18);
        if (likely(__pyx_t_19)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
          __Pyx_INCREF(__pyx_t_19);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_18, function);
        }
      }
      __pyx_t_5 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_19, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_7);
      __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_v_z, __pyx_t_5) < 0)) __PYX_ERR(0, 969, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 0970: 
 0971:     ##There are 6 main canals (fkc, madera, calaqueduct, kernriverchannel, kaweahriverchannel, and tuleriverchannel) that are directly connected to surface water storage
 0972:     ##The other canals connect these major arteries, but sometimes water from one canal will have 'priority' to use the connecting canals
 0973:     ##mainly shows that the California Aqueduct has first priority to use the Cross Valley Canal
 0974: 	##and the Kern River has first priority over the kern river canal
+0975:     self.canal_priority = {}
  __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority, __pyx_t_20) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0976:     self.canal_priority['fkc'] = [self.fkc]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 976, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_fkc, __pyx_t_6) < 0)) __PYX_ERR(0, 976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0977:     self.canal_priority['mdc'] = [self.madera]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_madera); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_mdc, __pyx_t_20) < 0)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0978:     self.canal_priority['caa'] = [self.calaqueduct]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_caa, __pyx_t_6) < 0)) __PYX_ERR(0, 978, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0979:     self.canal_priority['xvc'] = [self.calaqueduct]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_xvc, __pyx_t_20) < 0)) __PYX_ERR(0, 979, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0980:     self.canal_priority['kbc'] = [self.calaqueduct, self.kernriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_6);
  __pyx_t_20 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_kbc, __pyx_t_5) < 0)) __PYX_ERR(0, 980, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0981:     self.canal_priority['aec'] = [self.calaqueduct, self.fkc]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_6);
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_aec, __pyx_t_20) < 0)) __PYX_ERR(0, 981, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0982:     self.canal_priority['knr'] = [self.kernriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_knr, __pyx_t_6) < 0)) __PYX_ERR(0, 982, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0983:     self.canal_priority['knc'] = [self.kernriverchannel]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_knc, __pyx_t_20) < 0)) __PYX_ERR(0, 983, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0984:     self.canal_priority['gsl'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_18 = PyList_New(3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_18, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_18, 2, __pyx_t_5);
  __pyx_t_20 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_gsl, __pyx_t_18) < 0)) __PYX_ERR(0, 984, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+0985:     self.canal_priority['cwy'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 2, __pyx_t_6);
  __pyx_t_18 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_cwy, __pyx_t_20) < 0)) __PYX_ERR(0, 985, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0986:     self.canal_priority['lrd'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_18 = PyList_New(3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_18, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_18, 2, __pyx_t_5);
  __pyx_t_20 = 0;
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_lrd, __pyx_t_18) < 0)) __PYX_ERR(0, 986, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+0987:     self.canal_priority['bly'] = [self.calaqueduct, self.fkc, self.kernriverchannel]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(3); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 2, __pyx_t_6);
  __pyx_t_18 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_bly, __pyx_t_20) < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0988:     self.canal_priority['kwr'] = [self.kaweahriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_kwr, __pyx_t_6) < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0989:     self.canal_priority['tlr'] = [self.tuleriverchannel]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_tlr, __pyx_t_20) < 0)) __PYX_ERR(0, 989, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0990:     self.canal_priority['kgr'] = [self.kingsriverchannel]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriverchannel); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = PyList_New(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_kgr, __pyx_t_6) < 0)) __PYX_ERR(0, 990, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 0991: 
 0992:     ##Linkages between reservoirs, canals, and surface water contracts
 0993:     ##Reservoir-Contract Relationships (reservoirs are dictionary key, contracts are list objects)
+0994:     self.reservoir_contract = {}
  __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract, __pyx_t_6) < 0) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0995:     self.reservoir_contract['SLF'] = [self.crossvalley, self.cvpdelta, self.cvpexchange]
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_18 = PyList_New(3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 1, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_18, 2, __pyx_t_5);
  __pyx_t_6 = 0;
  __pyx_t_20 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_SLF, __pyx_t_18) < 0)) __PYX_ERR(0, 995, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+0996:     self.reservoir_contract['SLS'] = [self.swpdelta]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_SLS, __pyx_t_5) < 0)) __PYX_ERR(0, 996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+0997:     self.reservoir_contract['MIL'] = [self.friant2, self.friant1]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_20 = PyList_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_18);
  __pyx_t_5 = 0;
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 997, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_MIL, __pyx_t_20) < 0)) __PYX_ERR(0, 997, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+0998:     self.reservoir_contract['ISB'] = [self.kernriver]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_18 = PyList_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_ISB, __pyx_t_18) < 0)) __PYX_ERR(0, 998, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+0999:     self.reservoir_contract['SUC'] = [self.tuleriver]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriver); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_SUC, __pyx_t_20) < 0)) __PYX_ERR(0, 999, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1000:     self.reservoir_contract['KWH'] = [self.kaweahriver]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriver); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_18 = PyList_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_20);
  __pyx_t_20 = 0;
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_n_u_KWH, __pyx_t_18) < 0)) __PYX_ERR(0, 1000, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1001:     self.reservoir_contract['PFT'] = [self.kingsriver]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriver); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_20 = PyList_New(1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_PFT, __pyx_t_20) < 0)) __PYX_ERR(0, 1001, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1002: 
+1003:     for x in self.district_list:
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1003, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (likely(PyList_CheckExact(__pyx_t_20)) || PyTuple_CheckExact(__pyx_t_20)) {
    __pyx_t_18 = __pyx_t_20; __Pyx_INCREF(__pyx_t_18); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_20); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1003, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_34 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1003, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_18))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_20 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_20); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1003, __pyx_L1_error)
        #else
        __pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_20 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_20); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1003, __pyx_L1_error)
        #else
        __pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        #endif
      }
    } else {
      __pyx_t_20 = __pyx_t_34(__pyx_t_18);
      if (unlikely(!__pyx_t_20)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_20);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_20);
    __pyx_t_20 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1004:       x.carryover_rights = {}
    __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1004, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_20) < 0) __PYX_ERR(0, 1004, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1005:       for y in self.contract_list:
    __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    if (likely(PyList_CheckExact(__pyx_t_20)) || PyTuple_CheckExact(__pyx_t_20)) {
      __pyx_t_5 = __pyx_t_20; __Pyx_INCREF(__pyx_t_5); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_20); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1005, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_35 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1005, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_20 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_20); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1005, __pyx_L1_error)
          #else
          __pyx_t_20 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_20 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_20); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1005, __pyx_L1_error)
          #else
          __pyx_t_20 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          #endif
        }
      } else {
        __pyx_t_20 = __pyx_t_35(__pyx_t_5);
        if (unlikely(!__pyx_t_20)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1005, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_20);
      }
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_20);
      __pyx_t_20 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1006:         if y.type == 'right':
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_36 = (__Pyx_PyUnicode_Equals(__pyx_t_20, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1006, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      if (__pyx_t_36) {
/* … */
        goto __pyx_L37;
      }
+1007:           if x.has_pesticide:
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1007, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_36 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1007, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        if (__pyx_t_36) {
/* … */
          goto __pyx_L38;
        }
+1008:             x.carryover_rights[y.name] = y.carryover*x.rights[y.name]['carryover']*(1.0-x.private_fraction[0])
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_19, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = PyNumber_Multiply(__pyx_t_20, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_20 = __Pyx_GetItemInt(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_20, 1.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_Multiply(__pyx_t_19, __pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_19, __pyx_t_20) < 0)) __PYX_ERR(0, 1008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1009:           else:
+1010:             x.carryover_rights[y.name] = y.carryover*x.rights[y.name]['carryover']*(1.0-x.private_fraction[0])
        /*else*/ {
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Multiply(__pyx_t_20, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_20 = __Pyx_GetItemInt(__pyx_t_7, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_20, 1.0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_Multiply(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_6, __pyx_t_20) < 0)) __PYX_ERR(0, 1010, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __pyx_L38:;
 1011: 
 1012:         else:
+1013:           x.carryover_rights[y.name] = 0.0
      /*else*/ {
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_t_6, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1013, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __pyx_L37:;
+1014:     for x in self.private_list:
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1014, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
    __pyx_t_5 = __pyx_t_18; __Pyx_INCREF(__pyx_t_5); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1014, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_34 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1014, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_32); __Pyx_INCREF(__pyx_t_18); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1014, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_5, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1014, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_32); __Pyx_INCREF(__pyx_t_18); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1014, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_5, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1014, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      }
    } else {
      __pyx_t_18 = __pyx_t_34(__pyx_t_5);
      if (unlikely(!__pyx_t_18)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1014, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_18);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
    __pyx_t_18 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1015:       x.carryover_rights = {}
    __pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1015, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_18) < 0) __PYX_ERR(0, 1015, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1016:       for xx in x.district_list:
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
      __pyx_t_6 = __pyx_t_18; __Pyx_INCREF(__pyx_t_6); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1016, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_35 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1016, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_33); __Pyx_INCREF(__pyx_t_18); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1016, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1016, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_33); __Pyx_INCREF(__pyx_t_18); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1016, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1016, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        }
      } else {
        __pyx_t_18 = __pyx_t_35(__pyx_t_6);
        if (unlikely(!__pyx_t_18)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1016, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_18);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_18);
      __pyx_t_18 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1017:         district_object = self.district_keys[xx]
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_xx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_20);
      __pyx_t_20 = 0;
+1018:         x.carryover_rights[xx] = {}
      __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_v_xx, __pyx_t_20) < 0)) __PYX_ERR(0, 1018, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1019:         for y in self.contract_list:
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1019, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      if (likely(PyList_CheckExact(__pyx_t_20)) || PyTuple_CheckExact(__pyx_t_20)) {
        __pyx_t_18 = __pyx_t_20; __Pyx_INCREF(__pyx_t_18); __pyx_t_37 = 0;
        __pyx_t_38 = NULL;
      } else {
        __pyx_t_37 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_20); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1019, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_38 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1019, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      for (;;) {
        if (likely(!__pyx_t_38)) {
          if (likely(PyList_CheckExact(__pyx_t_18))) {
            if (__pyx_t_37 >= PyList_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_20 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_37); __Pyx_INCREF(__pyx_t_20); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1019, __pyx_L1_error)
            #else
            __pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1019, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            #endif
          } else {
            if (__pyx_t_37 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_20 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_37); __Pyx_INCREF(__pyx_t_20); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1019, __pyx_L1_error)
            #else
            __pyx_t_20 = PySequence_ITEM(__pyx_t_18, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1019, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            #endif
          }
        } else {
          __pyx_t_20 = __pyx_t_38(__pyx_t_18);
          if (unlikely(!__pyx_t_20)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1019, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_20);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_20);
        __pyx_t_20 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1020:           if y.type == 'right':
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1020, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_36 = (__Pyx_PyUnicode_Equals(__pyx_t_20, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1020, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        if (__pyx_t_36) {
/* … */
          goto __pyx_L45;
        }
+1021:             x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][0]
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_carryover); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_Multiply(__pyx_t_20, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_xx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_20, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_Multiply(__pyx_t_9, __pyx_t_19); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_19, __pyx_t_20) < 0)) __PYX_ERR(0, 1021, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1022:           else:
+1023:             x.carryover_rights[xx][y.name] = 0.0
        /*else*/ {
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_xx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_20, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1023, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __pyx_L45:;
+1024:     for x in self.city_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_34 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1024, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_6))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_32); __Pyx_INCREF(__pyx_t_5); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1024, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_32); __Pyx_INCREF(__pyx_t_5); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1024, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1024, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_34(__pyx_t_6);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1024, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1025:       x.carryover_rights = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_5) < 0) __PYX_ERR(0, 1025, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1026:       for xx in x.district_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_18 = __pyx_t_5; __Pyx_INCREF(__pyx_t_18); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_35 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1026, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_18))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_33); __Pyx_INCREF(__pyx_t_5); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1026, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_18, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_33); __Pyx_INCREF(__pyx_t_5); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1026, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_18, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_35(__pyx_t_18);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1026, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1027:         district_object = self.district_keys[xx]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_20);
      __pyx_t_20 = 0;
+1028:         x.carryover_rights[xx] = {}
      __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_xx, __pyx_t_20) < 0)) __PYX_ERR(0, 1028, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1029:         for y in self.contract_list:
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      if (likely(PyList_CheckExact(__pyx_t_20)) || PyTuple_CheckExact(__pyx_t_20)) {
        __pyx_t_5 = __pyx_t_20; __Pyx_INCREF(__pyx_t_5); __pyx_t_37 = 0;
        __pyx_t_38 = NULL;
      } else {
        __pyx_t_37 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_20); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1029, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_38 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1029, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      for (;;) {
        if (likely(!__pyx_t_38)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_37 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_20 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_37); __Pyx_INCREF(__pyx_t_20); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1029, __pyx_L1_error)
            #else
            __pyx_t_20 = PySequence_ITEM(__pyx_t_5, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1029, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            #endif
          } else {
            if (__pyx_t_37 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_20 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_37); __Pyx_INCREF(__pyx_t_20); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1029, __pyx_L1_error)
            #else
            __pyx_t_20 = PySequence_ITEM(__pyx_t_5, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1029, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            #endif
          }
        } else {
          __pyx_t_20 = __pyx_t_38(__pyx_t_5);
          if (unlikely(!__pyx_t_20)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1029, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_20);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_20);
        __pyx_t_20 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1030:           if y.type == 'right':
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_36 = (__Pyx_PyUnicode_Equals(__pyx_t_20, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1030, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        if (__pyx_t_36) {
/* … */
          goto __pyx_L52;
        }
+1031:             x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][0]
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_20, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_20, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_Multiply(__pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_9, __pyx_t_20) < 0)) __PYX_ERR(0, 1031, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1032:           else:
+1033:             x.carryover_rights[xx][y.name] = 0.0
        /*else*/ {
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_20, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1033, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __pyx_L52:;
 1034: 
 1035: 	##Use reservoir/contract dictionary to develop
 1036: 	##a list linking individual districts to reservoirs,
 1037: 	##based on their individual contracts
+1038:     for x in self.district_list:
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_18 = __pyx_t_6; __Pyx_INCREF(__pyx_t_18); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1038, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_34 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1038, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_18))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_6); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1038, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_6); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1038, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_34(__pyx_t_18);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1038, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1039:       x.reservoir_contract = {}
    __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract, __pyx_t_6) < 0) __PYX_ERR(0, 1039, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1040:       for res in self.reservoir_list:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1040, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_35 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1040, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_6); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1040, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_6); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1040, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_35(__pyx_t_5);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1040, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1041:         use_reservoir = 0
      __pyx_v_use_reservoir = 0;
+1042:         for y in self.reservoir_contract[res.key]:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1042, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1042, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_20); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1042, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
        __pyx_t_20 = __pyx_t_9; __Pyx_INCREF(__pyx_t_20); __pyx_t_37 = 0;
        __pyx_t_38 = NULL;
      } else {
        __pyx_t_37 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1042, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_38 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1042, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      for (;;) {
        if (likely(!__pyx_t_38)) {
          if (likely(PyList_CheckExact(__pyx_t_20))) {
            if (__pyx_t_37 >= PyList_GET_SIZE(__pyx_t_20)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_37); __Pyx_INCREF(__pyx_t_9); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1042, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1042, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          } else {
            if (__pyx_t_37 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_37); __Pyx_INCREF(__pyx_t_9); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1042, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_20, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1042, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          }
        } else {
          __pyx_t_9 = __pyx_t_38(__pyx_t_20);
          if (unlikely(!__pyx_t_9)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1042, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_9);
        __pyx_t_9 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1043:           for yy in x.contract_list:
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1043, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
          __pyx_t_6 = __pyx_t_9; __Pyx_INCREF(__pyx_t_6); __pyx_t_39 = 0;
          __pyx_t_40 = NULL;
        } else {
          __pyx_t_39 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1043, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_40 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1043, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        for (;;) {
          if (likely(!__pyx_t_40)) {
            if (likely(PyList_CheckExact(__pyx_t_6))) {
              if (__pyx_t_39 >= PyList_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_39); __Pyx_INCREF(__pyx_t_9); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1043, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_6, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1043, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            } else {
              if (__pyx_t_39 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_39); __Pyx_INCREF(__pyx_t_9); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1043, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_6, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1043, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            }
          } else {
            __pyx_t_9 = __pyx_t_40(__pyx_t_6);
            if (unlikely(!__pyx_t_9)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1043, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_9);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_9);
          __pyx_t_9 = 0;
/* … */
        }
        __pyx_L60_break:;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1044:             if y.name == yy:
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1044, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = PyObject_RichCompare(__pyx_t_9, __pyx_v_yy, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1044, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_36 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1044, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_36) {
/* … */
          }
+1045:               use_reservoir = 1
            __pyx_v_use_reservoir = 1;
+1046:               break
            goto __pyx_L60_break;
+1047:         if use_reservoir == 1:
      __pyx_t_36 = ((__pyx_v_use_reservoir == 1) != 0);
      if (__pyx_t_36) {
/* … */
        goto __pyx_L62;
      }
+1048:           x.reservoir_contract[res.key] = 1
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1048, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1048, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyObject_SetItem(__pyx_t_20, __pyx_t_6, __pyx_int_1) < 0)) __PYX_ERR(0, 1048, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 1049:         else:
+1050:           x.reservoir_contract[res.key] = 0
      /*else*/ {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1050, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1050, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_20, __pyx_int_0) < 0)) __PYX_ERR(0, 1050, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      }
      __pyx_L62:;
+1051:     for x in self.private_list:
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1051, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
    __pyx_t_5 = __pyx_t_18; __Pyx_INCREF(__pyx_t_5); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_34 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1051, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_32); __Pyx_INCREF(__pyx_t_18); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1051, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_5, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_32); __Pyx_INCREF(__pyx_t_18); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1051, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_5, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      }
    } else {
      __pyx_t_18 = __pyx_t_34(__pyx_t_5);
      if (unlikely(!__pyx_t_18)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1051, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_18);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
    __pyx_t_18 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1052:       x.reservoir_contract = {}
    __pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract, __pyx_t_18) < 0) __PYX_ERR(0, 1052, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1053:       for res in self.reservoir_list:
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1053, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
      __pyx_t_20 = __pyx_t_18; __Pyx_INCREF(__pyx_t_20); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1053, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __pyx_t_35 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1053, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_20))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_20)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_33); __Pyx_INCREF(__pyx_t_18); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1053, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_20, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1053, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_33); __Pyx_INCREF(__pyx_t_18); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1053, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_20, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1053, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        }
      } else {
        __pyx_t_18 = __pyx_t_35(__pyx_t_20);
        if (unlikely(!__pyx_t_18)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1053, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_18);
      }
      __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_18);
      __pyx_t_18 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1054:         use_reservoir = 0
      __pyx_v_use_reservoir = 0;
+1055:         for y in self.reservoir_contract[res.key]:
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1055, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1055, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1055, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_37 = 0;
        __pyx_t_38 = NULL;
      } else {
        __pyx_t_37 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_38 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1055, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_38)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_37 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_37); __Pyx_INCREF(__pyx_t_7); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1055, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1055, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_37 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_37); __Pyx_INCREF(__pyx_t_7); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1055, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1055, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_38(__pyx_t_6);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1055, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1056:           for district_name in x.district_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1056, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_18 = __pyx_t_7; __Pyx_INCREF(__pyx_t_18); __pyx_t_39 = 0;
          __pyx_t_40 = NULL;
        } else {
          __pyx_t_39 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1056, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_40 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1056, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_40)) {
            if (likely(PyList_CheckExact(__pyx_t_18))) {
              if (__pyx_t_39 >= PyList_GET_SIZE(__pyx_t_18)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_39); __Pyx_INCREF(__pyx_t_7); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1056, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1056, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_39 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_39); __Pyx_INCREF(__pyx_t_7); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1056, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1056, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_40(__pyx_t_18);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1056, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_district_name, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1057:             district = self.district_keys[district_name]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1057, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_district_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1057, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_9);
          __pyx_t_9 = 0;
+1058:             for yy in district.contract_list:
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
            __pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_41 = 0;
            __pyx_t_42 = NULL;
          } else {
            __pyx_t_41 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1058, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_42 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1058, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          for (;;) {
            if (likely(!__pyx_t_42)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_41 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_41); __Pyx_INCREF(__pyx_t_9); __pyx_t_41++; if (unlikely(0 < 0)) __PYX_ERR(0, 1058, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_41); __pyx_t_41++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1058, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              } else {
                if (__pyx_t_41 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_41); __Pyx_INCREF(__pyx_t_9); __pyx_t_41++; if (unlikely(0 < 0)) __PYX_ERR(0, 1058, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_41); __pyx_t_41++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1058, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              }
            } else {
              __pyx_t_9 = __pyx_t_42(__pyx_t_7);
              if (unlikely(!__pyx_t_9)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1058, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_9);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_9);
            __pyx_t_9 = 0;
/* … */
          }
          __pyx_L72_break:;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1059:               if y.name == yy:
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1059, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_19 = PyObject_RichCompare(__pyx_t_9, __pyx_v_yy, Py_EQ); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1059, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_36 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1059, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (__pyx_t_36) {
/* … */
            }
+1060:                 use_reservoir = 1
              __pyx_v_use_reservoir = 1;
+1061:                 break
              goto __pyx_L72_break;
+1062:         if use_reservoir == 1:
      __pyx_t_36 = ((__pyx_v_use_reservoir == 1) != 0);
      if (__pyx_t_36) {
/* … */
        goto __pyx_L74;
      }
+1063:           x.reservoir_contract[res.key] = 1
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1063, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1063, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_18, __pyx_int_1) < 0)) __PYX_ERR(0, 1063, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 1064:         else:
+1065:           x.reservoir_contract[res.key] = 0
      /*else*/ {
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1065, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1065, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_t_6, __pyx_int_0) < 0)) __PYX_ERR(0, 1065, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __pyx_L74:;
+1066:     for x in self.city_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_20 = __pyx_t_5; __Pyx_INCREF(__pyx_t_20); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_20 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __pyx_t_34 = Py_TYPE(__pyx_t_20)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1066, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_20))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_20)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_20, __pyx_t_32); __Pyx_INCREF(__pyx_t_5); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1066, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_20, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_20)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_20, __pyx_t_32); __Pyx_INCREF(__pyx_t_5); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1066, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_20, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1066, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_34(__pyx_t_20);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1066, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1067:       x.reservoir_contract = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract, __pyx_t_5) < 0) __PYX_ERR(0, 1067, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1068:       for res in self.reservoir_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1068, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1068, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_35 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1068, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_33); __Pyx_INCREF(__pyx_t_5); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1068, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1068, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_33); __Pyx_INCREF(__pyx_t_5); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1068, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1068, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_35(__pyx_t_6);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1068, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1069:         use_reservoir = 0
      __pyx_v_use_reservoir = 0;
+1070:         for y in self.reservoir_contract[res.key]:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1070, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1070, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_18 = __pyx_t_7; __Pyx_INCREF(__pyx_t_18); __pyx_t_37 = 0;
        __pyx_t_38 = NULL;
      } else {
        __pyx_t_37 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1070, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_38 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_38)) __PYX_ERR(0, 1070, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_38)) {
          if (likely(PyList_CheckExact(__pyx_t_18))) {
            if (__pyx_t_37 >= PyList_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_37); __Pyx_INCREF(__pyx_t_7); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1070, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_37 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_37); __Pyx_INCREF(__pyx_t_7); __pyx_t_37++; if (unlikely(0 < 0)) __PYX_ERR(0, 1070, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_37); __pyx_t_37++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1070, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_38(__pyx_t_18);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1070, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1071:           for district_name in x.district_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1071, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_5 = __pyx_t_7; __Pyx_INCREF(__pyx_t_5); __pyx_t_39 = 0;
          __pyx_t_40 = NULL;
        } else {
          __pyx_t_39 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1071, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_40 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_40)) __PYX_ERR(0, 1071, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_40)) {
            if (likely(PyList_CheckExact(__pyx_t_5))) {
              if (__pyx_t_39 >= PyList_GET_SIZE(__pyx_t_5)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_39); __Pyx_INCREF(__pyx_t_7); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1071, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1071, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_39 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_39); __Pyx_INCREF(__pyx_t_7); __pyx_t_39++; if (unlikely(0 < 0)) __PYX_ERR(0, 1071, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_39); __pyx_t_39++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1071, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_40(__pyx_t_5);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1071, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_district_name, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1072:             district = self.district_keys[district_name]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1072, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_district_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1072, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_19);
          __pyx_t_19 = 0;
+1073:             for yy in district.contract_list:
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1073, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          if (likely(PyList_CheckExact(__pyx_t_19)) || PyTuple_CheckExact(__pyx_t_19)) {
            __pyx_t_7 = __pyx_t_19; __Pyx_INCREF(__pyx_t_7); __pyx_t_41 = 0;
            __pyx_t_42 = NULL;
          } else {
            __pyx_t_41 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1073, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_42 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_42)) __PYX_ERR(0, 1073, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          for (;;) {
            if (likely(!__pyx_t_42)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_41 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_19 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_41); __Pyx_INCREF(__pyx_t_19); __pyx_t_41++; if (unlikely(0 < 0)) __PYX_ERR(0, 1073, __pyx_L1_error)
                #else
                __pyx_t_19 = PySequence_ITEM(__pyx_t_7, __pyx_t_41); __pyx_t_41++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1073, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                #endif
              } else {
                if (__pyx_t_41 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_19 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_41); __Pyx_INCREF(__pyx_t_19); __pyx_t_41++; if (unlikely(0 < 0)) __PYX_ERR(0, 1073, __pyx_L1_error)
                #else
                __pyx_t_19 = PySequence_ITEM(__pyx_t_7, __pyx_t_41); __pyx_t_41++; if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1073, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                #endif
              }
            } else {
              __pyx_t_19 = __pyx_t_42(__pyx_t_7);
              if (unlikely(!__pyx_t_19)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1073, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_19);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_19);
            __pyx_t_19 = 0;
/* … */
          }
          __pyx_L84_break:;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1074:               if y.name == yy:
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1074, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_9 = PyObject_RichCompare(__pyx_t_19, __pyx_v_yy, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1074, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_36 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_36 < 0)) __PYX_ERR(0, 1074, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (__pyx_t_36) {
/* … */
            }
+1075:                 use_reservoir = 1
              __pyx_v_use_reservoir = 1;
+1076:                 break
              goto __pyx_L84_break;
+1077:         if use_reservoir == 1:
      __pyx_t_36 = ((__pyx_v_use_reservoir == 1) != 0);
      if (__pyx_t_36) {
/* … */
        goto __pyx_L86;
      }
+1078:           x.reservoir_contract[res.key] = 1
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1078, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1078, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_t_5, __pyx_int_1) < 0)) __PYX_ERR(0, 1078, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1079:         else:
+1080:           x.reservoir_contract[res.key] = 0
      /*else*/ {
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1080, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1080, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_18, __pyx_int_0) < 0)) __PYX_ERR(0, 1080, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      }
      __pyx_L86:;
 1081: 
 1082:     ##Contract-Reservoir Relationships (contracts are dictionary key, reservoirs are list objects)
+1083:     self.contract_reservoir = {}
  __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir, __pyx_t_20) < 0) __PYX_ERR(0, 1083, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1084:     self.contract_reservoir['FR1'] = self.millerton
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1084, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_FR1, __pyx_t_20) < 0)) __PYX_ERR(0, 1084, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1085:     self.contract_reservoir['FR2'] = self.millerton
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1085, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_FR2, __pyx_t_20) < 0)) __PYX_ERR(0, 1085, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1086:     self.contract_reservoir['KRR'] = self.isabella
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1086, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_KRR, __pyx_t_20) < 0)) __PYX_ERR(0, 1086, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1087:     self.contract_reservoir['KGR'] = self.pineflat
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1087, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_KGR, __pyx_t_20) < 0)) __PYX_ERR(0, 1087, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1088:     self.contract_reservoir['TRR'] = self.success
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_TRR, __pyx_t_20) < 0)) __PYX_ERR(0, 1088, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1089:     self.contract_reservoir['WRR'] = self.kaweah
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1089, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_WRR, __pyx_t_20) < 0)) __PYX_ERR(0, 1089, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1090:     self.contract_reservoir['SLS'] = self.sanluisstate
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1090, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_SLS, __pyx_t_20) < 0)) __PYX_ERR(0, 1090, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1091:     self.contract_reservoir['SLF'] = self.sanluisfederal
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1091, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_SLF, __pyx_t_20) < 0)) __PYX_ERR(0, 1091, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1092:     self.contract_reservoir['ECH'] = self.sanluisfederal
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1092, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_ECH, __pyx_t_20) < 0)) __PYX_ERR(0, 1092, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1093:     self.contract_reservoir['CVC'] = self.sanluisfederal
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_CVC, __pyx_t_20) < 0)) __PYX_ERR(0, 1093, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1094: 
 1095:     ##Canal-Contract Relationships (canals are dictionary key, contracts are list objects)
+1096:     self.canal_contract = {}
  __pyx_t_20 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1096, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract, __pyx_t_20) < 0) __PYX_ERR(0, 1096, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1097:     self.canal_contract['fkc'] = [self.friant1, self.friant2]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant1); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_18 = PyList_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_18, 1, __pyx_t_6);
  __pyx_t_20 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_fkc, __pyx_t_18) < 0)) __PYX_ERR(0, 1097, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1098:     self.canal_contract['mdc'] = [self.friant1, self.friant2]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_20 = PyList_New(2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_20, 0, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_20, 1, __pyx_t_6);
  __pyx_t_18 = 0;
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_mdc, __pyx_t_20) < 0)) __PYX_ERR(0, 1098, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
+1099:     self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]
  __pyx_t_20 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_20);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyList_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_20);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_20);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_t_5);
  __pyx_t_20 = 0;
  __pyx_t_6 = 0;
  __pyx_t_18 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_caa, __pyx_t_7) < 0)) __PYX_ERR(0, 1099, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1100:     self.canal_contract['knr'] = [self.kernriver]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_knr, __pyx_t_5) < 0)) __PYX_ERR(0, 1100, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1101:     self.canal_contract['tlr'] = [self.tuleriver]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriver); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_tlr, __pyx_t_7) < 0)) __PYX_ERR(0, 1101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1102:     self.canal_contract['kwr'] = [self.kaweahriver]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriver); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_kwr, __pyx_t_5) < 0)) __PYX_ERR(0, 1102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1103:     self.canal_contract['kgr'] = [self.kingsriver]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriver); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1103, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_kgr, __pyx_t_7) < 0)) __PYX_ERR(0, 1103, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1104:     self.canal_contract['xvc'] = []
  __pyx_t_7 = PyList_New(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1104, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_xvc, __pyx_t_7) < 0)) __PYX_ERR(0, 1104, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1105: 
 1106:     ##Contracts-Canal Relationships (which canals can be physically reached with contracts)	
+1107:     self.contract_turnouts = {}
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1107, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts, __pyx_t_7) < 0) __PYX_ERR(0, 1107, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1108:     self.contract_turnouts['friant1'] = ['fkc', 'mdc', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_fkc);
  __Pyx_GIVEREF(__pyx_n_u_fkc);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_fkc);
  __Pyx_INCREF(__pyx_n_u_mdc);
  __Pyx_GIVEREF(__pyx_n_u_mdc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_mdc);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 10, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_friant1, __pyx_t_7) < 0)) __PYX_ERR(0, 1108, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1109:     self.contract_turnouts['friant2'] = ['fkc', 'mdc', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_fkc);
  __Pyx_GIVEREF(__pyx_n_u_fkc);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_fkc);
  __Pyx_INCREF(__pyx_n_u_mdc);
  __Pyx_GIVEREF(__pyx_n_u_mdc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_mdc);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 10, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1109, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_friant2, __pyx_t_7) < 0)) __PYX_ERR(0, 1109, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1110:     self.contract_turnouts['tableA'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_caa);
  __Pyx_GIVEREF(__pyx_n_u_caa);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_caa);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1110, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_tableA, __pyx_t_7) < 0)) __PYX_ERR(0, 1110, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1111:     self.contract_turnouts['cvpdelta'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_caa);
  __Pyx_GIVEREF(__pyx_n_u_caa);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_caa);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1111, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_cvpdelta, __pyx_t_7) < 0)) __PYX_ERR(0, 1111, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1112:     self.contract_turnouts['exchange'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_caa);
  __Pyx_GIVEREF(__pyx_n_u_caa);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_caa);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1112, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_exchange, __pyx_t_7) < 0)) __PYX_ERR(0, 1112, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1113:     self.contract_turnouts['cvc'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_caa);
  __Pyx_GIVEREF(__pyx_n_u_caa);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_caa);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_cvc, __pyx_t_7) < 0)) __PYX_ERR(0, 1113, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1114:     self.contract_turnouts['kern'] = ['caa', 'xvc', 'kbc', 'aec', 'knr', 'knc', 'gsl', 'cwy', 'lrd', 'bly']
  __pyx_t_7 = PyList_New(10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_caa);
  __Pyx_GIVEREF(__pyx_n_u_caa);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_caa);
  __Pyx_INCREF(__pyx_n_u_xvc);
  __Pyx_GIVEREF(__pyx_n_u_xvc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_xvc);
  __Pyx_INCREF(__pyx_n_u_kbc);
  __Pyx_GIVEREF(__pyx_n_u_kbc);
  PyList_SET_ITEM(__pyx_t_7, 2, __pyx_n_u_kbc);
  __Pyx_INCREF(__pyx_n_u_aec);
  __Pyx_GIVEREF(__pyx_n_u_aec);
  PyList_SET_ITEM(__pyx_t_7, 3, __pyx_n_u_aec);
  __Pyx_INCREF(__pyx_n_u_knr);
  __Pyx_GIVEREF(__pyx_n_u_knr);
  PyList_SET_ITEM(__pyx_t_7, 4, __pyx_n_u_knr);
  __Pyx_INCREF(__pyx_n_u_knc);
  __Pyx_GIVEREF(__pyx_n_u_knc);
  PyList_SET_ITEM(__pyx_t_7, 5, __pyx_n_u_knc);
  __Pyx_INCREF(__pyx_n_u_gsl);
  __Pyx_GIVEREF(__pyx_n_u_gsl);
  PyList_SET_ITEM(__pyx_t_7, 6, __pyx_n_u_gsl);
  __Pyx_INCREF(__pyx_n_u_cwy);
  __Pyx_GIVEREF(__pyx_n_u_cwy);
  PyList_SET_ITEM(__pyx_t_7, 7, __pyx_n_u_cwy);
  __Pyx_INCREF(__pyx_n_u_lrd);
  __Pyx_GIVEREF(__pyx_n_u_lrd);
  PyList_SET_ITEM(__pyx_t_7, 8, __pyx_n_u_lrd);
  __Pyx_INCREF(__pyx_n_u_bly);
  __Pyx_GIVEREF(__pyx_n_u_bly);
  PyList_SET_ITEM(__pyx_t_7, 9, __pyx_n_u_bly);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1114, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_kern, __pyx_t_7) < 0)) __PYX_ERR(0, 1114, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1115:     self.contract_turnouts['tule'] = ['kwr', 'fkc']
  __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_kwr);
  __Pyx_GIVEREF(__pyx_n_u_kwr);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_kwr);
  __Pyx_INCREF(__pyx_n_u_fkc);
  __Pyx_GIVEREF(__pyx_n_u_fkc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_fkc);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_tule, __pyx_t_7) < 0)) __PYX_ERR(0, 1115, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1116:     self.contract_turnouts['kaweah'] = ['tlr', 'fkc']
  __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_tlr);
  __Pyx_GIVEREF(__pyx_n_u_tlr);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_tlr);
  __Pyx_INCREF(__pyx_n_u_fkc);
  __Pyx_GIVEREF(__pyx_n_u_fkc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_fkc);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1116, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_kaweah, __pyx_t_7) < 0)) __PYX_ERR(0, 1116, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1117:     self.contract_turnouts['kings'] = ['kgr', 'fkc']
  __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_INCREF(__pyx_n_u_kgr);
  __Pyx_GIVEREF(__pyx_n_u_kgr);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_n_u_kgr);
  __Pyx_INCREF(__pyx_n_u_fkc);
  __Pyx_GIVEREF(__pyx_n_u_fkc);
  PyList_SET_ITEM(__pyx_t_7, 1, __pyx_n_u_fkc);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_kings, __pyx_t_7) < 0)) __PYX_ERR(0, 1117, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1118: 
 1119: 
 1120:     ##Reservoir-Canal Relationships (reservoirs are dictionary key, canals are list objects)
+1121:     self.reservoir_canal = {}
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1121, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal, __pyx_t_7) < 0) __PYX_ERR(0, 1121, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1122:     self.reservoir_canal['SLS'] = [self.calaqueduct]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1122, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_SLS, __pyx_t_5) < 0)) __PYX_ERR(0, 1122, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1123:     self.reservoir_canal['SLF'] = [self.calaqueduct]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1123, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_SLF, __pyx_t_7) < 0)) __PYX_ERR(0, 1123, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1124:     self.reservoir_canal['SNL'] = [self.calaqueduct]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyList_New(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_SNL, __pyx_t_5) < 0)) __PYX_ERR(0, 1124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1125:     self.reservoir_canal['MIL'] = [self.fkc, self.madera]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_madera); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = PyList_New(2); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_18, 1, __pyx_t_7);
  __pyx_t_5 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_MIL, __pyx_t_18) < 0)) __PYX_ERR(0, 1125, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1126:     self.reservoir_canal['ISB'] = [self.kernriverchannel]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_ISB, __pyx_t_7) < 0)) __PYX_ERR(0, 1126, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1127:     self.reservoir_canal['SUC'] = [self.tuleriverchannel]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_tuleriverchannel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = PyList_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_SUC, __pyx_t_18) < 0)) __PYX_ERR(0, 1127, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1128:     self.reservoir_canal['KWH'] = [self.kaweahriverchannel]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweahriverchannel); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1128, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_KWH, __pyx_t_7) < 0)) __PYX_ERR(0, 1128, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1129:     self.reservoir_canal['PFT'] = [self.kingsriverchannel]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kingsriverchannel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = PyList_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_PFT, __pyx_t_18) < 0)) __PYX_ERR(0, 1129, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 1130: 
+1131:     self.canal_reservoir = {}
  __pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1131, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_canal_reservoir, __pyx_t_18) < 0) __PYX_ERR(0, 1131, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1132:     self.canal_reservoir['fkc'] = [self.millerton]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_reservoir); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_fkc, __pyx_t_7) < 0)) __PYX_ERR(0, 1132, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1133:     self.canal_reservoir['caa'] = [self.sanluisstate]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = PyList_New(1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_18, 0, __pyx_t_7);
  __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_reservoir); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1133, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_caa, __pyx_t_18) < 0)) __PYX_ERR(0, 1133, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1134:     self.canal_reservoir['knr'] = [self.isabella]
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = PyList_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_18);
  PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_18);
  __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_reservoir); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_n_u_knr, __pyx_t_7) < 0)) __PYX_ERR(0, 1134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1135:     for reservoir in self.reservoir_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1135, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_18 = __pyx_t_7; __Pyx_INCREF(__pyx_t_18); __pyx_t_32 = 0;
    __pyx_t_34 = NULL;
  } else {
    __pyx_t_32 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1135, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_34 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_34)) __PYX_ERR(0, 1135, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_34)) {
      if (likely(PyList_CheckExact(__pyx_t_18))) {
        if (__pyx_t_32 >= PyList_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_7); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1135, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_32 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_7); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1135, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_34(__pyx_t_18);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1135, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1136:       reservoir.total_capacity = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_reservoir, __pyx_n_s_total_capacity, __pyx_float_0_0) < 0) __PYX_ERR(0, 1136, __pyx_L1_error)
+1137:       for canal_to_reservoir in self.reservoir_canal[reservoir.key]:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_33 = 0;
      __pyx_t_35 = NULL;
    } else {
      __pyx_t_33 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_35 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_35)) __PYX_ERR(0, 1137, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_35)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_33 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_6); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_33 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_33); __Pyx_INCREF(__pyx_t_6); __pyx_t_33++; if (unlikely(0 < 0)) __PYX_ERR(0, 1137, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_33); __pyx_t_33++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1137, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_35(__pyx_t_5);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1137, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_canal_to_reservoir, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1138:         reservoir.total_capacity += canal_to_reservoir.capacity['normal'][0]
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_total_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal_to_reservoir, __pyx_n_s_capacity); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_20 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_normal); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_20, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
      __pyx_t_20 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_20);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_reservoir, __pyx_n_s_total_capacity, __pyx_t_20) < 0) __PYX_ERR(0, 1138, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
 1139: 
+1140:     self.pumping_turnback = {}
  __pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1140, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback, __pyx_t_18) < 0) __PYX_ERR(0, 1140, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1141:     self.allocation_losses = {}
  __pyx_t_18 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1141, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses, __pyx_t_18) < 0) __PYX_ERR(0, 1141, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+1142:     for z in ['SLS', 'SLF', 'MIL', 'ISB', 'SUC', 'KWH', 'PFT']:
  __pyx_t_18 = __pyx_tuple__31; __Pyx_INCREF(__pyx_t_18); __pyx_t_32 = 0;
  for (;;) {
    if (__pyx_t_32 >= 7) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_32); __Pyx_INCREF(__pyx_t_5); __pyx_t_32++; if (unlikely(0 < 0)) __PYX_ERR(0, 1142, __pyx_L1_error)
    #else
    __pyx_t_5 = PySequence_ITEM(__pyx_t_18, __pyx_t_32); __pyx_t_32++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1142, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
/* … */
  __pyx_tuple__31 = PyTuple_Pack(7, __pyx_n_u_SLS, __pyx_n_u_SLF, __pyx_n_u_MIL, __pyx_n_u_ISB, __pyx_n_u_SUC, __pyx_n_u_KWH, __pyx_n_u_PFT); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 1142, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);
+1143:       self.pumping_turnback[z] = 0.0
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1143, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1144:       self.allocation_losses[z] = 0.0
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1145: ####################################################################################################################
 1146: #####################################################################################################################
 1147: 
 1148: 
 1149: #####################################################################################################################
 1150: #############################     Pre processing functions    #######################################################
 1151: #####################################################################################################################
 1152: 
+1153:   def set_sensitivity_factors(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_25set_sensitivity_factors(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_25set_sensitivity_factors = {"set_sensitivity_factors", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_25set_sensitivity_factors, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_25set_sensitivity_factors(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_sensitivity_factors (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_24set_sensitivity_factors(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_24set_sensitivity_factors(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_sensitivity_factor = NULL;
  PyObject *__pyx_v_index = NULL;
  PyObject *__pyx_8genexpr4__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__32)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_sensitivity_factors", 0);
  __Pyx_TraceCall("set_sensitivity_factors", __pyx_f[0], 1153, 0, __PYX_ERR(0, 1153, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_sensitivity_factors", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_sensitivity_factor);
  __Pyx_XDECREF(__pyx_v_index);
  __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__101 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_sensitivity_factor, __pyx_n_s_index, __pyx_n_s_x); if (unlikely(!__pyx_tuple__101)) __PYX_ERR(0, 1153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__101);
  __Pyx_GIVEREF(__pyx_tuple__101);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_25set_sensitivity_factors, 0, __pyx_n_s_Model_set_sensitivity_factors, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__32)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_sensitivity_factors, __pyx_t_2) < 0) __PYX_ERR(0, 1153, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__101, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_sensitivity_factors, 1153, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 1153, __pyx_L1_error)
+1154:     for sensitivity_factor in self.sensitivity_factors['district_factor_list']:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_district_factor_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1154, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1154, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1154, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1154, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1154, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1154, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1154, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_sensitivity_factor, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1155:       # set model sensitivity factors equal to sample values from input file
+1156:       index = [x == sensitivity_factor for x in self.sensitivity_sample_names]
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1156, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_sample_names); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1156, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_6 = __pyx_t_5; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1156, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1156, __pyx_L7_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1156, __pyx_L7_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1156, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1156, __pyx_L7_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1156, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_8(__pyx_t_6);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1156, __pyx_L7_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr4__pyx_v_x, __pyx_t_5);
        __pyx_t_5 = 0;
        __pyx_t_5 = PyObject_RichCompare(__pyx_8genexpr4__pyx_v_x, __pyx_v_sensitivity_factor, Py_EQ); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1156, __pyx_L7_error)
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_5))) __PYX_ERR(0, 1156, __pyx_L7_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_x); __pyx_8genexpr4__pyx_v_x = 0;
      goto __pyx_L10_exit_scope;
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_8genexpr4__pyx_v_x); __pyx_8genexpr4__pyx_v_x = 0;
      goto __pyx_L1_error;
      __pyx_L10_exit_scope:;
    } /* exit inner scope */
    __Pyx_XDECREF_SET(__pyx_v_index, __pyx_t_2);
    __pyx_t_2 = 0;
+1157:       index = np.where(index)[0][0]
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_where); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_6, __pyx_v_index) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_index);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_index, __pyx_t_2);
    __pyx_t_2 = 0;
+1158:       self.sensitivity_factors[sensitivity_factor]['realization'] = self.sensitivity_sample[index]
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_sample); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_sensitivity_factor); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_realization, __pyx_t_5) < 0)) __PYX_ERR(0, 1158, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1159: 
+1160:   def find_running_WYI(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_27find_running_WYI(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_27find_running_WYI = {"find_running_WYI", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_27find_running_WYI, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_27find_running_WYI(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_running_WYI (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_26find_running_WYI(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_26find_running_WYI(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_lastYearSRI = NULL;
  PyObject *__pyx_v_lastYearSJI = NULL;
  PyObject *__pyx_v_startMonth = NULL;
  PyObject *__pyx_v_startYear = NULL;
  PyObject *__pyx_v_rainflood_sac_obs = NULL;
  PyObject *__pyx_v_snowflood_sac_obs = NULL;
  PyObject *__pyx_v_rainflood_sj_obs = NULL;
  PyObject *__pyx_v_snowflood_sj_obs = NULL;
  CYTHON_UNUSED long __pyx_v_index_exceedence;
  PyObject *__pyx_v_reservoir_list = NULL;
  PyObject *__pyx_v_sac_list = NULL;
  PyObject *__pyx_v_sj_list = NULL;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_year_index = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_da = NULL;
  PyObject *__pyx_v_dowy = NULL;
  long __pyx_v_index_exceedence_sac;
  CYTHON_UNUSED long __pyx_v_index_exceedence_sj;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_res_rain_forecast = NULL;
  PyObject *__pyx_v_sac_rain = NULL;
  PyObject *__pyx_v_res_snow_forecast = NULL;
  PyObject *__pyx_v_sac_snow = NULL;
  PyObject *__pyx_v_sj_rain = NULL;
  PyObject *__pyx_v_sj_snow = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__33)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_running_WYI", 0);
  __Pyx_TraceCall("find_running_WYI", __pyx_f[0], 1160, 0, __PYX_ERR(0, 1160, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_running_WYI", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_lastYearSRI);
  __Pyx_XDECREF(__pyx_v_lastYearSJI);
  __Pyx_XDECREF(__pyx_v_startMonth);
  __Pyx_XDECREF(__pyx_v_startYear);
  __Pyx_XDECREF(__pyx_v_rainflood_sac_obs);
  __Pyx_XDECREF(__pyx_v_snowflood_sac_obs);
  __Pyx_XDECREF(__pyx_v_rainflood_sj_obs);
  __Pyx_XDECREF(__pyx_v_snowflood_sj_obs);
  __Pyx_XDECREF(__pyx_v_reservoir_list);
  __Pyx_XDECREF(__pyx_v_sac_list);
  __Pyx_XDECREF(__pyx_v_sj_list);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_year_index);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_da);
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_res_rain_forecast);
  __Pyx_XDECREF(__pyx_v_sac_rain);
  __Pyx_XDECREF(__pyx_v_res_snow_forecast);
  __Pyx_XDECREF(__pyx_v_sac_snow);
  __Pyx_XDECREF(__pyx_v_sj_rain);
  __Pyx_XDECREF(__pyx_v_sj_snow);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__102 = PyTuple_Pack(27, __pyx_n_s_self, __pyx_n_s_lastYearSRI, __pyx_n_s_lastYearSJI, __pyx_n_s_startMonth, __pyx_n_s_startYear, __pyx_n_s_rainflood_sac_obs, __pyx_n_s_snowflood_sac_obs, __pyx_n_s_rainflood_sj_obs, __pyx_n_s_snowflood_sj_obs, __pyx_n_s_index_exceedence, __pyx_n_s_reservoir_list, __pyx_n_s_sac_list, __pyx_n_s_sj_list, __pyx_n_s_t, __pyx_n_s_year_index, __pyx_n_s_m, __pyx_n_s_da, __pyx_n_s_dowy, __pyx_n_s_index_exceedence_sac, __pyx_n_s_index_exceedence_sj, __pyx_n_s_x, __pyx_n_s_res_rain_forecast, __pyx_n_s_sac_rain, __pyx_n_s_res_snow_forecast, __pyx_n_s_sac_snow, __pyx_n_s_sj_rain, __pyx_n_s_sj_snow); if (unlikely(!__pyx_tuple__102)) __PYX_ERR(0, 1160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__102);
  __Pyx_GIVEREF(__pyx_tuple__102);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_27find_running_WYI, 0, __pyx_n_s_Model_find_running_WYI, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__33)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_running_WYI, __pyx_t_2) < 0) __PYX_ERR(0, 1160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__33 = (PyObject*)__Pyx_PyCode_New(1, 0, 27, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__102, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_running_WYI, 1160, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__33)) __PYX_ERR(0, 1160, __pyx_L1_error)
 1161:     ###Pre-processing function
 1162: 	##Finds the 8 River, Sacramento, and San Joaquin indicies based on flow projections
+1163:     lastYearSRI = 10.26 # WY 1996
  __Pyx_INCREF(__pyx_float_10_26);
  __pyx_v_lastYearSRI = __pyx_float_10_26;
+1164:     lastYearSJI = 4.12 # WY 1996
  __Pyx_INCREF(__pyx_float_4_12);
  __pyx_v_lastYearSJI = __pyx_float_4_12;
+1165:     startMonth = self.index.month[0]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1165, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_startMonth = __pyx_t_1;
  __pyx_t_1 = 0;
+1166:     startYear = self.starting_year
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1166, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_startYear = __pyx_t_1;
  __pyx_t_1 = 0;
+1167:     rainflood_sac_obs = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_rainflood_sac_obs = __pyx_float_0_0;
+1168:     snowflood_sac_obs = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_snowflood_sac_obs = __pyx_float_0_0;
+1169:     rainflood_sj_obs = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_rainflood_sj_obs = __pyx_float_0_0;
+1170:     snowflood_sj_obs = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_snowflood_sj_obs = __pyx_float_0_0;
+1171:     index_exceedence = 2
  __pyx_v_index_exceedence = 2;
+1172:     reservoir_list = [self.shasta, self.folsom, self.oroville, self.yuba, self.newmelones, self.donpedro, self.exchequer, self.millerton]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyList_New(8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1172, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_9, 4, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_9, 5, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_9, 6, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_9, 7, __pyx_t_8);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_v_reservoir_list = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;
+1173:     sac_list = [self.shasta, self.folsom, self.oroville, self.yuba]
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_9);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_6);
  __pyx_t_9 = 0;
  __pyx_t_8 = 0;
  __pyx_t_7 = 0;
  __pyx_t_6 = 0;
  __pyx_v_sac_list = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+1174:     sj_list = [self.newmelones, self.donpedro, self.exchequer, self.millerton]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = PyList_New(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_9, 2, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_9, 3, __pyx_t_8);
  __pyx_t_5 = 0;
  __pyx_t_6 = 0;
  __pyx_t_7 = 0;
  __pyx_t_8 = 0;
  __pyx_v_sj_list = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;
+1175:     for t in range(0,self.T):
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_8, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1175, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_8 = __pyx_t_9; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1175, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1175, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1175, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1175, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_11(__pyx_t_8);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1175, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1176:       year_index = self.year[t] - startYear
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_Subtract(__pyx_t_7, __pyx_v_startYear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1176, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_year_index, __pyx_t_9);
    __pyx_t_9 = 0;
+1177:       m = self.month[t]
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_month); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_7);
    __pyx_t_7 = 0;
+1178:       da = self.day_month[t]
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_da, __pyx_t_9);
    __pyx_t_9 = 0;
+1179:       dowy = self.dowy[t]
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1179, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_7);
    __pyx_t_7 = 0;
+1180:       index_exceedence_sac = 9
    __pyx_v_index_exceedence_sac = 9;
+1181:       index_exceedence_sj = 5
    __pyx_v_index_exceedence_sj = 5;
 1182: 	  ##8 River Index
+1183:       for x in reservoir_list:
    __pyx_t_7 = __pyx_v_reservoir_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
    for (;;) {
      if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1183, __pyx_L1_error)
      #else
      __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1183, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1184:         self.delta.eri[m-startMonth + year_index*12] + x.fnf[t]*1000
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_eri); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_Subtract(__pyx_v_m, __pyx_v_startMonth); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_5 = PyNumber_Multiply(__pyx_v_year_index, __pyx_int_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Multiply(__pyx_t_6, __pyx_int_1000); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1184, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 1185: 	  ####################Sacramento Index#############################################################################################
 1186: 	  ##Individual Rainflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1187:       if m >=10:
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1187, __pyx_L1_error)
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1187, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_13) {
/* … */
      goto __pyx_L7;
    }
+1188:         self.delta.forecastSJI[t] = lastYearSJI
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1188, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1188, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_t, __pyx_v_lastYearSJI) < 0)) __PYX_ERR(0, 1188, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1189:         self.delta.forecastSRI[t] = lastYearSRI
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_t, __pyx_v_lastYearSRI) < 0)) __PYX_ERR(0, 1189, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1190:       else:
+1191:         res_rain_forecast = 0.0
    /*else*/ {
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_res_rain_forecast, __pyx_float_0_0);
+1192:         for x in sac_list:
      __pyx_t_7 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1192, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1192, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1193:           res_rain_forecast += x.rainflood_fnf[t] + x.rainfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rainflood_fnf); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rainfnf_stds); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_dowy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_Multiply(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Add(__pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_res_rain_forecast, __pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_t_6);
        __pyx_t_6 = 0;
 1194: 	    ##SAC TOTAL RAIN
+1195:         if m >= 4 and m < 10:
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1195, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1195, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_14) {
      } else {
        __pyx_t_13 = __pyx_t_14;
        goto __pyx_L11_bool_binop_done;
      }
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1195, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1195, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __pyx_t_14;
      __pyx_L11_bool_binop_done:;
      if (__pyx_t_13) {
/* … */
        goto __pyx_L10;
      }
+1196:           sac_rain = rainflood_sac_obs
        __Pyx_INCREF(__pyx_v_rainflood_sac_obs);
        __Pyx_XDECREF_SET(__pyx_v_sac_rain, __pyx_v_rainflood_sac_obs);
 1197:         else:
+1198:           sac_rain = max(rainflood_sac_obs, res_rain_forecast)
      /*else*/ {
        __Pyx_INCREF(__pyx_v_res_rain_forecast);
        __pyx_t_7 = __pyx_v_res_rain_forecast;
        __Pyx_INCREF(__pyx_v_rainflood_sac_obs);
        __pyx_t_6 = __pyx_v_rainflood_sac_obs;
        __pyx_t_4 = PyObject_RichCompare(__pyx_t_7, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1198, __pyx_L1_error)
        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1198, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_13) {
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_9 = __pyx_t_7;
        } else {
          __Pyx_INCREF(__pyx_t_6);
          __pyx_t_9 = __pyx_t_6;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __pyx_t_9;
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF_SET(__pyx_v_sac_rain, __pyx_t_7);
        __pyx_t_7 = 0;
      }
      __pyx_L10:;
 1199: 	    ##Individual Snowflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1200:         res_snow_forecast = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_res_snow_forecast, __pyx_float_0_0);
+1201:         for x in sac_list:
      __pyx_t_7 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1201, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1201, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
        __pyx_t_9 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1202:           res_snow_forecast += x.snowflood_fnf[t] + x.snowfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_snowfnf_stds); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_v_res_snow_forecast, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1202, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_t_9);
        __pyx_t_9 = 0;
 1203: 	    ##SAC TOTAL SNOW
+1204:         if m >= 8 and m < 10:
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1204, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1204, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_14) {
      } else {
        __pyx_t_13 = __pyx_t_14;
        goto __pyx_L16_bool_binop_done;
      }
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1204, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1204, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __pyx_t_14;
      __pyx_L16_bool_binop_done:;
      if (__pyx_t_13) {
/* … */
        goto __pyx_L15;
      }
+1205:           sac_snow = snowflood_sac_obs
        __Pyx_INCREF(__pyx_v_snowflood_sac_obs);
        __Pyx_XDECREF_SET(__pyx_v_sac_snow, __pyx_v_snowflood_sac_obs);
 1206:         else:
+1207:           sac_snow = max(snowflood_sac_obs, res_snow_forecast)
      /*else*/ {
        __Pyx_INCREF(__pyx_v_res_snow_forecast);
        __pyx_t_7 = __pyx_v_res_snow_forecast;
        __Pyx_INCREF(__pyx_v_snowflood_sac_obs);
        __pyx_t_9 = __pyx_v_snowflood_sac_obs;
        __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1207, __pyx_L1_error)
        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1207, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_13) {
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_5 = __pyx_t_7;
        } else {
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_5 = __pyx_t_9;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __pyx_t_5;
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_sac_snow, __pyx_t_7);
        __pyx_t_7 = 0;
      }
      __pyx_L15:;
 1208: 	  #######################################################################################################################################
 1209: 	  #####################San Joaquin Index################################################################################################
 1210:         ##Individual Rainflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1211:         res_rain_forecast = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_float_0_0);
+1212:         for x in sj_list:
      __pyx_t_7 = __pyx_v_sj_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_5); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1212, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1212, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1213:           res_rain_forecast += x.rainflood_fnf[t] + x.rainfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rainflood_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rainfnf_stds); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_res_rain_forecast, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF_SET(__pyx_v_res_rain_forecast, __pyx_t_5);
        __pyx_t_5 = 0;
 1214: 	    ##SJ TOTAL RAIN
+1215:         if m >= 4 and m < 10:
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1215, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1215, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_14) {
      } else {
        __pyx_t_13 = __pyx_t_14;
        goto __pyx_L21_bool_binop_done;
      }
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1215, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1215, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __pyx_t_14;
      __pyx_L21_bool_binop_done:;
      if (__pyx_t_13) {
/* … */
        goto __pyx_L20;
      }
+1216:           sj_rain = rainflood_sj_obs
        __Pyx_INCREF(__pyx_v_rainflood_sj_obs);
        __Pyx_XDECREF_SET(__pyx_v_sj_rain, __pyx_v_rainflood_sj_obs);
 1217:         else:
+1218:           sj_rain = max(rainflood_sj_obs, res_rain_forecast)
      /*else*/ {
        __Pyx_INCREF(__pyx_v_res_rain_forecast);
        __pyx_t_7 = __pyx_v_res_rain_forecast;
        __Pyx_INCREF(__pyx_v_rainflood_sj_obs);
        __pyx_t_5 = __pyx_v_rainflood_sj_obs;
        __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1218, __pyx_L1_error)
        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1218, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_13) {
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_4 = __pyx_t_7;
        } else {
          __Pyx_INCREF(__pyx_t_5);
          __pyx_t_4 = __pyx_t_5;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __pyx_t_4;
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_sj_rain, __pyx_t_7);
        __pyx_t_7 = 0;
      }
      __pyx_L20:;
 1219: 	    ##Individual Snowflood Forecast - either the 90% exceedence level prediction, or the observed WYTD fnf value
+1220:         res_snow_forecast = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_float_0_0);
+1221:         for x in sj_list:
      __pyx_t_7 = __pyx_v_sj_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1221, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1221, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
        __pyx_t_4 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1222:           res_snow_forecast += x.snowflood_fnf[t] + x.snowfnf_stds[dowy]*z_table_transform[index_exceedence_sac]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_snowfnf_stds); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_z_table_transform); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, __pyx_v_index_exceedence_sac, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Multiply(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_res_snow_forecast, __pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_res_snow_forecast, __pyx_t_4);
        __pyx_t_4 = 0;
 1223: 	    ##SAC TOTAL SNOW
+1224:         if m >= 8 and m < 10:
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1224, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1224, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_14) {
      } else {
        __pyx_t_13 = __pyx_t_14;
        goto __pyx_L26_bool_binop_done;
      }
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1224, __pyx_L1_error)
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1224, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __pyx_t_14;
      __pyx_L26_bool_binop_done:;
      if (__pyx_t_13) {
/* … */
        goto __pyx_L25;
      }
+1225:           sj_snow = snowflood_sj_obs
        __Pyx_INCREF(__pyx_v_snowflood_sj_obs);
        __Pyx_XDECREF_SET(__pyx_v_sj_snow, __pyx_v_snowflood_sj_obs);
 1226:         else:
+1227:           sj_snow = max(snowflood_sj_obs, res_snow_forecast)
      /*else*/ {
        __Pyx_INCREF(__pyx_v_res_snow_forecast);
        __pyx_t_7 = __pyx_v_res_snow_forecast;
        __Pyx_INCREF(__pyx_v_snowflood_sj_obs);
        __pyx_t_4 = __pyx_v_snowflood_sj_obs;
        __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1227, __pyx_L1_error)
        __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1227, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_13) {
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_6 = __pyx_t_7;
        } else {
          __Pyx_INCREF(__pyx_t_4);
          __pyx_t_6 = __pyx_t_4;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __pyx_t_6;
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_sj_snow, __pyx_t_7);
        __pyx_t_7 = 0;
      }
      __pyx_L25:;
 1228: 
 1229:       ###INDEX FORECASTS########################################################################################################################
+1230:         self.delta.forecastSJI[t] = min(lastYearSJI,4.5)*0.2 + sj_rain*0.2 + sj_snow*0.6
      __pyx_t_15 = 4.5;
      __Pyx_INCREF(__pyx_v_lastYearSJI);
      __pyx_t_7 = __pyx_v_lastYearSJI;
      __pyx_t_4 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_4, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_13) {
        __pyx_t_5 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1230, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __pyx_t_5;
        __pyx_t_5 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_6 = __pyx_t_7;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_float_0_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Multiply(__pyx_v_sj_rain, __pyx_float_0_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_Multiply(__pyx_v_sj_snow, __pyx_float_0_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_t, __pyx_t_7) < 0)) __PYX_ERR(0, 1230, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1231:         self.delta.forecastSRI[t] = min(lastYearSRI,10)*0.3 + sac_rain*0.3 + sac_snow*0.4
      __pyx_t_16 = 10;
      __Pyx_INCREF(__pyx_v_lastYearSRI);
      __pyx_t_7 = __pyx_v_lastYearSRI;
      __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_13) {
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1231, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __pyx_t_4;
        __pyx_t_4 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_5 = __pyx_t_7;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_float_0_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_v_sac_rain, __pyx_float_0_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Add(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_v_sac_snow, __pyx_float_0_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_t, __pyx_t_7) < 0)) __PYX_ERR(0, 1231, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L7:;
 1232: 
 1233:       ##REAL-TIME OBSERVATIONS
+1234:       if m >= 10 or m <= 3:
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1234, __pyx_L1_error)
    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1234, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (!__pyx_t_14) {
    } else {
      __pyx_t_13 = __pyx_t_14;
      goto __pyx_L29_bool_binop_done;
    }
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_m, __pyx_int_3, Py_LE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1234, __pyx_L1_error)
    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1234, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_13 = __pyx_t_14;
    __pyx_L29_bool_binop_done:;
    if (__pyx_t_13) {
/* … */
      goto __pyx_L28;
    }
+1235:         rainflood_sac_obs += self.shasta.fnf[t] + self.oroville.fnf[t] + self.folsom.fnf[t] + self.yuba.fnf[t]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_rainflood_sac_obs, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1235, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_rainflood_sac_obs, __pyx_t_4);
      __pyx_t_4 = 0;
+1236:         rainflood_sj_obs += self.newmelones.fnf[t] + self.donpedro.fnf[t] + self.exchequer.fnf[t] + self.millerton.fnf[t]
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_rainflood_sj_obs, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1236, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_rainflood_sj_obs, __pyx_t_5);
      __pyx_t_5 = 0;
+1237:       elif m < 8:
    __pyx_t_5 = PyObject_RichCompare(__pyx_v_m, __pyx_int_8, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1237, __pyx_L1_error)
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1237, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_13) {
/* … */
    }
    __pyx_L28:;
+1238:         snowflood_sac_obs += self.shasta.fnf[t] + self.oroville.fnf[t] + self.folsom.fnf[t] + self.yuba.fnf[t]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_snowflood_sac_obs, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1238, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF_SET(__pyx_v_snowflood_sac_obs, __pyx_t_7);
      __pyx_t_7 = 0;
+1239:         snowflood_sj_obs += self.newmelones.fnf[t] + self.donpedro.fnf[t] + self.exchequer.fnf[t] + self.millerton.fnf[t]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_snowflood_sj_obs, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1239, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_snowflood_sj_obs, __pyx_t_4);
      __pyx_t_4 = 0;
 1240: 
 1241: 	##SAVE INDEX FROM EACH YEAR (FOR USE IN NEXT YEAR'S FORECAST	
+1242:       if m == 9 and da == 30:
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1242, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_14) {
    } else {
      __pyx_t_13 = __pyx_t_14;
      goto __pyx_L32_bool_binop_done;
    }
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_30, 30, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1242, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_13 = __pyx_t_14;
    __pyx_L32_bool_binop_done:;
    if (__pyx_t_13) {
/* … */
    }
+1243:         lastYearSRI = 0.3*min(lastYearSRI,10) + 0.3*rainflood_sac_obs + 0.4*snowflood_sac_obs
      __pyx_t_16 = 10;
      __Pyx_INCREF(__pyx_v_lastYearSRI);
      __pyx_t_4 = __pyx_v_lastYearSRI;
      __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_13) {
        __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1243, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __pyx_t_6;
        __pyx_t_6 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Multiply(__pyx_float_0_3, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_float_0_3, __pyx_v_rainflood_sac_obs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_float_0_4, __pyx_v_snowflood_sac_obs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Add(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1243, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_lastYearSRI, __pyx_t_4);
      __pyx_t_4 = 0;
+1244:         lastYearSJI = 0.2*min(lastYearSJI,4.5) + 0.2*rainflood_sj_obs + 0.6*snowflood_sj_obs
      __pyx_t_15 = 4.5;
      __Pyx_INCREF(__pyx_v_lastYearSJI);
      __pyx_t_4 = __pyx_v_lastYearSJI;
      __pyx_t_6 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_13) {
        __pyx_t_7 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1244, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = __pyx_t_7;
        __pyx_t_7 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_5 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Multiply(__pyx_float_0_2, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_float_0_2, __pyx_v_rainflood_sj_obs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_float_0_6, __pyx_v_snowflood_sj_obs); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = PyNumber_Add(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1244, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_lastYearSJI, __pyx_t_4);
      __pyx_t_4 = 0;
+1245:         rainflood_sac_obs = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_rainflood_sac_obs, __pyx_float_0_0);
+1246:         snowflood_sac_obs = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_snowflood_sac_obs, __pyx_float_0_0);
+1247:         rainflood_sj_obs = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_rainflood_sj_obs, __pyx_float_0_0);
+1248:         snowflood_sj_obs = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_snowflood_sj_obs, __pyx_float_0_0);
 1249:     # df_wyi = pd.DataFrame()
 1250:     # df_wyi['SRI'] = pd.Series(self.delta.forecastSRI, index = self.index)
 1251:     # df_wyi['SJI'] = pd.Series(self.delta.forecastSJI, index = self.index)
 1252:     # df_wyi.to_csv(self.results_folder + '/water_year_index_simulation.csv')
 1253: 
+1254:   def predict_delta_gains(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_29predict_delta_gains(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_29predict_delta_gains = {"predict_delta_gains", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_29predict_delta_gains, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_29predict_delta_gains(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("predict_delta_gains (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_28predict_delta_gains(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_28predict_delta_gains(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_gains_sac_short = NULL;
  PyObject *__pyx_v_gains_sj_short = NULL;
  PyObject *__pyx_v_eastside_streams_short = NULL;
  PyObject *__pyx_v_depletions_short = NULL;
  PyObject *__pyx_v_sac_list = NULL;
  PyObject *__pyx_v_reservoir = NULL;
  PyObject *__pyx_v_numYears_short = NULL;
  PyObject *__pyx_v_monthly_gains = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_startYear = NULL;
  CYTHON_UNUSED double __pyx_v_prev_gains;
  PyObject *__pyx_v_prev_fnf = NULL;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_da = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_dowy = NULL;
  PyObject *__pyx_v_wateryear = NULL;
  PyObject *__pyx_v_this_day_fnf = NULL;
  PyObject *__pyx_v_fnf_off = NULL;
  PyObject *__pyx_v_this_day_gains = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_min_release = NULL;
  PyObject *__pyx_v_gauge_min = NULL;
  PyObject *__pyx_v_volume_constraint = NULL;
  PyObject *__pyx_v_flow_ratio_constraint = NULL;
  PyObject *__pyx_v_state_pumping = NULL;
  PyObject *__pyx_v_fed_pumping = NULL;
  PyObject *__pyx_v_pumping_constraint = NULL;
  long __pyx_v_mm;
  PyObject *__pyx_v_one_year_runfnf = NULL;
  PyObject *__pyx_v_monthly_gains_predict = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_coef = NULL;
  PyObject *__pyx_8genexpr5__pyx_v__ = NULL;
  PyObject *__pyx_8genexpr6__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__34)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("predict_delta_gains", 0);
  __Pyx_TraceCall("predict_delta_gains", __pyx_f[0], 1254, 0, __PYX_ERR(0, 1254, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.predict_delta_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_gains_sac_short);
  __Pyx_XDECREF(__pyx_v_gains_sj_short);
  __Pyx_XDECREF(__pyx_v_eastside_streams_short);
  __Pyx_XDECREF(__pyx_v_depletions_short);
  __Pyx_XDECREF(__pyx_v_sac_list);
  __Pyx_XDECREF(__pyx_v_reservoir);
  __Pyx_XDECREF(__pyx_v_numYears_short);
  __Pyx_XDECREF(__pyx_v_monthly_gains);
  __Pyx_XDECREF(__pyx_v_startYear);
  __Pyx_XDECREF(__pyx_v_prev_fnf);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_da);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_wateryear);
  __Pyx_XDECREF(__pyx_v_this_day_fnf);
  __Pyx_XDECREF(__pyx_v_fnf_off);
  __Pyx_XDECREF(__pyx_v_this_day_gains);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_min_release);
  __Pyx_XDECREF(__pyx_v_gauge_min);
  __Pyx_XDECREF(__pyx_v_volume_constraint);
  __Pyx_XDECREF(__pyx_v_flow_ratio_constraint);
  __Pyx_XDECREF(__pyx_v_state_pumping);
  __Pyx_XDECREF(__pyx_v_fed_pumping);
  __Pyx_XDECREF(__pyx_v_pumping_constraint);
  __Pyx_XDECREF(__pyx_v_one_year_runfnf);
  __Pyx_XDECREF(__pyx_v_monthly_gains_predict);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_coef);
  __Pyx_XDECREF(__pyx_8genexpr5__pyx_v__);
  __Pyx_XDECREF(__pyx_8genexpr6__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__103 = PyTuple_Pack(35, __pyx_n_s_self, __pyx_n_s_gains_sac_short, __pyx_n_s_gains_sj_short, __pyx_n_s_eastside_streams_short, __pyx_n_s_depletions_short, __pyx_n_s_sac_list, __pyx_n_s_reservoir, __pyx_n_s_numYears_short, __pyx_n_s_monthly_gains, __pyx_n_s_startYear, __pyx_n_s_prev_gains, __pyx_n_s_prev_fnf, __pyx_n_s_t, __pyx_n_s_da, __pyx_n_s_m, __pyx_n_s_dowy, __pyx_n_s_wateryear, __pyx_n_s_this_day_fnf, __pyx_n_s_fnf_off, __pyx_n_s_this_day_gains, __pyx_n_s_x, __pyx_n_s_min_release, __pyx_n_s_gauge_min, __pyx_n_s_volume_constraint, __pyx_n_s_flow_ratio_constraint, __pyx_n_s_state_pumping, __pyx_n_s_fed_pumping, __pyx_n_s_pumping_constraint, __pyx_n_s_mm, __pyx_n_s_one_year_runfnf, __pyx_n_s_monthly_gains_predict, __pyx_n_s_yy, __pyx_n_s_coef, __pyx_n_s__12, __pyx_n_s__12); if (unlikely(!__pyx_tuple__103)) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__103);
  __Pyx_GIVEREF(__pyx_tuple__103);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_29predict_delta_gains, 0, __pyx_n_s_Model_predict_delta_gains, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__34)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_predict_delta_gains, __pyx_t_2) < 0) __PYX_ERR(0, 1254, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__34 = (PyObject*)__Pyx_PyCode_New(1, 0, 35, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__103, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_predict_delta_gains, 1254, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__34)) __PYX_ERR(0, 1254, __pyx_L1_error)
 1255:     ##this function uses a regression to find expected 'unstored' flows coming to the
 1256:     ##delta, to better project flow into San Luis
+1257:     gains_sac_short = self.df_short.SAC_gains * cfs_tafd
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_SAC_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1257, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_gains_sac_short = __pyx_t_3;
  __pyx_t_3 = 0;
+1258:     gains_sj_short = self.df_short.SJ_gains * cfs_tafd
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_SJ_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1258, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_gains_sj_short = __pyx_t_2;
  __pyx_t_2 = 0;
+1259:     eastside_streams_short = self.df_short.EAST_gains * cfs_tafd
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_EAST_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_eastside_streams_short = __pyx_t_1;
  __pyx_t_1 = 0;
+1260:     depletions_short = self.df_short.delta_depletions * cfs_tafd
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_delta_depletions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1260, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_depletions_short = __pyx_t_3;
  __pyx_t_3 = 0;
 1261: 
+1262:     sac_list = [self.shasta, self.folsom, self.oroville, self.yuba]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyList_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1262, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_5, 2, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_4 = 0;
  __pyx_v_sac_list = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+1263:     for reservoir in sac_list:
  __pyx_t_5 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1263, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1264:       reservoir.fnf_short = [_ / 1000000.0 for _ in self.df_short['%s_fnf'% reservoir.key].values]
    { /* enter inner scope */
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_fnf, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L7_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1264, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1264, __pyx_L7_error)
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1264, __pyx_L7_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1264, __pyx_L7_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L7_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          }
        } else {
          __pyx_t_3 = __pyx_t_8(__pyx_t_1);
          if (unlikely(!__pyx_t_3)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1264, __pyx_L7_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr5__pyx_v__, __pyx_t_3);
        __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyFloat_TrueDivideObjC(__pyx_8genexpr5__pyx_v__, __pyx_float_1000000_0, 1000000.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1264, __pyx_L7_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_3))) __PYX_ERR(0, 1264, __pyx_L7_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v__); __pyx_8genexpr5__pyx_v__ = 0;
      goto __pyx_L10_exit_scope;
      __pyx_L7_error:;
      __Pyx_XDECREF(__pyx_8genexpr5__pyx_v__); __pyx_8genexpr5__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L10_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_reservoir, __pyx_n_s_fnf_short, __pyx_t_4) < 0) __PYX_ERR(0, 1264, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1265:       reservoir.downstream_short = [_ * cfs_tafd for _ in self.df_short['%s_gains'% reservoir.key].values]
    { /* enter inner scope */
      __pyx_t_4 = PyList_New(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_df_short); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyUnicode_FormatSafe(__pyx_kp_u_s_gains, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_values); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L13_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1265, __pyx_L13_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1265, __pyx_L13_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1265, __pyx_L13_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1265, __pyx_L13_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L13_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_8(__pyx_t_3);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1265, __pyx_L13_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr6__pyx_v__, __pyx_t_2);
        __pyx_t_2 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1265, __pyx_L13_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyNumber_Multiply(__pyx_8genexpr6__pyx_v__, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1265, __pyx_L13_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_4, (PyObject*)__pyx_t_1))) __PYX_ERR(0, 1265, __pyx_L13_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF(__pyx_8genexpr6__pyx_v__); __pyx_8genexpr6__pyx_v__ = 0;
      goto __pyx_L16_exit_scope;
      __pyx_L13_error:;
      __Pyx_XDECREF(__pyx_8genexpr6__pyx_v__); __pyx_8genexpr6__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L16_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_reservoir, __pyx_n_s_downstream_short, __pyx_t_4) < 0) __PYX_ERR(0, 1265, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1266: 
 1267: 	##########################################################################################
 1268:     #Initialize gains matricies
 1269: 	##Unstored flow will be regressed against total FNF expected in that year
+1270:     numYears_short = self.short_number_years
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_number_years); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_numYears_short = __pyx_t_5;
  __pyx_t_5 = 0;
+1271:     self.running_fnf = np.zeros((365,numYears_short))
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_365);
  __Pyx_GIVEREF(__pyx_int_365);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365);
  __Pyx_INCREF(__pyx_v_numYears_short);
  __Pyx_GIVEREF(__pyx_v_numYears_short);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_numYears_short);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_running_fnf, __pyx_t_5) < 0) __PYX_ERR(0, 1271, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1272:     ##Total gains in each month
+1273:     monthly_gains = np.zeros((12,numYears_short))
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_12);
  __Pyx_GIVEREF(__pyx_int_12);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_12);
  __Pyx_INCREF(__pyx_v_numYears_short);
  __Pyx_GIVEREF(__pyx_v_numYears_short);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_numYears_short);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_5 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1273, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_monthly_gains = __pyx_t_5;
  __pyx_t_5 = 0;
+1274:     startYear = self.short_starting_year
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1274, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_startYear = __pyx_t_5;
  __pyx_t_5 = 0;
 1275:     ##########################################################################################
 1276:     ##########################################################################################
 1277:     #Read flow from historical recalfews_src
 1278: 	##########################################################################################
+1279:     prev_gains = 0.0
  __pyx_v_prev_gains = 0.0;
+1280:     prev_fnf = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_prev_fnf = __pyx_float_0_0;
+1281:     for t in range(0,self.T_short):
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T_short); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1281, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1281, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1281, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1281, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1281, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1281, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1281, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1282:       ##Get date information
+1283:       da = self.short_day_month[t]
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_day_month); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF_SET(__pyx_v_da, __pyx_t_3);
    __pyx_t_3 = 0;
+1284:       m = self.short_month[t]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_5);
    __pyx_t_5 = 0;
+1285:       dowy = self.short_dowy[t]
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_dowy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1285, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_3);
    __pyx_t_3 = 0;
+1286:       wateryear = self.short_water_year[t]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_short_water_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1286, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_5);
    __pyx_t_5 = 0;
 1287: 
 1288:       #Calculate the total daily unstored gains to the delta
+1289:       this_day_fnf = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_this_day_fnf, __pyx_float_0_0);
+1290:       fnf_off = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_fnf_off, __pyx_float_0_0);
+1291:       this_day_gains = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_this_day_gains, __pyx_float_0_0);
+1292:       for x in sac_list:
    __pyx_t_5 = __pyx_v_sac_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    for (;;) {
      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1292, __pyx_L1_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1293:         this_day_fnf += x.fnf_short[t]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_fnf_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_this_day_fnf, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_this_day_fnf, __pyx_t_3);
      __pyx_t_3 = 0;
+1294:         min_release = x.env_min_flow[self.delta.forecastSCWYT][m-1]*cfs_tafd
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_env_min_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_min_release, __pyx_t_1);
      __pyx_t_1 = 0;
+1295:         gauge_min = x.temp_releases[self.delta.forecastSCWYT][m-1]*cfs_tafd
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_temp_releases); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_gauge_min, __pyx_t_2);
      __pyx_t_2 = 0;
+1296:         this_day_gains += max(max(x.downstream_short[t] + min_release, 0.0), gauge_min)
      __Pyx_INCREF(__pyx_v_gauge_min);
      __pyx_t_2 = __pyx_v_gauge_min;
      __pyx_t_9 = 0.0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_downstream_short); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_min_release); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_10 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = PyObject_RichCompare(__pyx_t_10, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_12) {
        __pyx_t_11 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_1 = __pyx_t_11;
        __pyx_t_11 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_1 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_3 = __pyx_t_1;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_11 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_12) {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_1 = __pyx_t_2;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_1 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_2);
      __pyx_t_2 = 0;
+1297:         if t >= 30:
      __pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1297, __pyx_L1_error)
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1297, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_12) {
/* … */
      }
+1298:           fnf_off += x.fnf_short[t-30]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_fnf_short); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_fnf_off, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1298, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF_SET(__pyx_v_fnf_off, __pyx_t_1);
        __pyx_t_1 = 0;
 1299: 
+1300:       this_day_gains += gains_sac_short[t]
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_gains_sac_short, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_1);
    __pyx_t_1 = 0;
+1301:       this_day_gains += gains_sj_short[t]
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_gains_sj_short, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1301, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_5);
    __pyx_t_5 = 0;
+1302:       this_day_gains += eastside_streams_short[t]
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_eastside_streams_short, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_this_day_gains, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF_SET(__pyx_v_this_day_gains, __pyx_t_1);
    __pyx_t_1 = 0;
 1303: 
+1304:       prev_fnf += this_day_fnf
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_prev_fnf, __pyx_v_this_day_fnf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_prev_fnf, __pyx_t_1);
    __pyx_t_1 = 0;
+1305:       prev_fnf -= fnf_off
    __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_v_prev_fnf, __pyx_v_fnf_off); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_prev_fnf, __pyx_t_1);
    __pyx_t_1 = 0;
+1306:       if t < 30:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1306, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1306, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_12) {
/* … */
      goto __pyx_L22;
    }
+1307:         self.running_fnf[dowy][wateryear] = min(prev_fnf*30.0/(t+1), 4.0)
      __pyx_t_9 = 4.0;
      __pyx_t_1 = PyNumber_Multiply(__pyx_v_prev_fnf, __pyx_float_30_0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_12) {
        __pyx_t_2 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = __pyx_t_2;
        __pyx_t_2 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_5 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_5;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_running_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_wateryear, __pyx_t_3) < 0)) __PYX_ERR(0, 1307, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 1308:       else:
+1309:         self.running_fnf[dowy][wateryear] = min(prev_fnf, 4.0)
    /*else*/ {
      __pyx_t_9 = 4.0;
      __Pyx_INCREF(__pyx_v_prev_fnf);
      __pyx_t_3 = __pyx_v_prev_fnf;
      __pyx_t_5 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_12) {
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1309, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
        __pyx_t_1 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_running_fnf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_wateryear, __pyx_t_3) < 0)) __PYX_ERR(0, 1309, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __pyx_L22:;
 1310: 
 1311:       ##Calculate the max daily 'unstored pumping'
 1312:       #'unstored pumping' is the minimum of three constraints on the 'gains' flows
+1313:       volume_constraint = this_day_gains - self.delta.min_outflow[self.delta.forecastSCWYT][m-1]*cfs_tafd + depletions_short[t]#extra gains after delta outflow requirements
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_this_day_gains, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_depletions_short, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1313, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_volume_constraint, __pyx_t_1);
    __pyx_t_1 = 0;
+1314:       flow_ratio_constraint = this_day_gains*self.delta.export_ratio[self.delta.forecastSCWYT][m-1]#portion of gains that can be exported 
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_export_ratio); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Multiply(__pyx_v_this_day_gains, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_flow_ratio_constraint, __pyx_t_2);
    __pyx_t_2 = 0;
+1315:       state_pumping = np.interp(da, self.delta.pump_max['swp']['d'], self.delta.pump_max['swp']['intake_limit'])#max state pumping
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_interp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_d); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1315, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_13 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_da, __pyx_t_5, __pyx_t_11};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_da, __pyx_t_5, __pyx_t_11};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_13, __pyx_v_da);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_13, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_13, __pyx_t_11);
      __pyx_t_5 = 0;
      __pyx_t_11 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_10, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1315, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_state_pumping, __pyx_t_2);
    __pyx_t_2 = 0;
+1316:       fed_pumping = np.interp(da, self.delta.pump_max['cvp']['d'], self.delta.pump_max['cvp']['intake_limit'])#max fed pumping
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_interp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_d); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_10);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_10, function);
        __pyx_t_13 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_da, __pyx_t_11, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
      PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_da, __pyx_t_11, __pyx_t_5};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_13, __pyx_v_da);
      __Pyx_GIVEREF(__pyx_t_11);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_13, __pyx_t_11);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_13, __pyx_t_5);
      __pyx_t_11 = 0;
      __pyx_t_5 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF_SET(__pyx_v_fed_pumping, __pyx_t_2);
    __pyx_t_2 = 0;
+1317:       pumping_constraint = (state_pumping + fed_pumping) * cfs_tafd#max pumping
    __pyx_t_2 = PyNumber_Add(__pyx_v_state_pumping, __pyx_v_fed_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1317, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_XDECREF_SET(__pyx_v_pumping_constraint, __pyx_t_3);
    __pyx_t_3 = 0;
 1318: 
 1319:       ##Monthly
+1320:       monthly_gains[m-1][wateryear] += max(min(volume_constraint,flow_ratio_constraint, pumping_constraint), 0.0)
    __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_monthly_gains, __pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_INCREF(__pyx_v_wateryear);
    __pyx_t_3 = __pyx_v_wateryear;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = 0.0;
    __Pyx_INCREF(__pyx_v_flow_ratio_constraint);
    __pyx_t_5 = __pyx_v_flow_ratio_constraint;
    __Pyx_INCREF(__pyx_v_pumping_constraint);
    __pyx_t_11 = __pyx_v_pumping_constraint;
    __Pyx_INCREF(__pyx_v_volume_constraint);
    __pyx_t_1 = __pyx_v_volume_constraint;
    __pyx_t_15 = PyObject_RichCompare(__pyx_t_5, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_12) {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_14 = __pyx_t_5;
    } else {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_14 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_t_14);
    __pyx_t_1 = __pyx_t_14;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_15 = PyObject_RichCompare(__pyx_t_11, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_12) {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_14 = __pyx_t_11;
    } else {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_14 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_t_14);
    __pyx_t_5 = __pyx_t_14;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_11 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_11, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_12) {
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1320, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = __pyx_t_1;
      __pyx_t_1 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_14 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_3, __pyx_t_5) < 0)) __PYX_ERR(0, 1320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1321:     ##########################################################################################
 1322:     ##########################################################################################
 1323:     #Perform linear regression - FNF used for running prediction of total 'unstored' flow to delta in oct-mar; apr-jul period
 1324: 	##########################################################################################
+1325:     self.delta_gains_regression = {}
  __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression, __pyx_t_4) < 0) __PYX_ERR(0, 1325, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1326:     self.delta_gains_regression['slope'] = np.zeros((365,12))
  __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_10)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_10);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_10, __pyx_tuple__35) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_tuple__35);
  __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_slope, __pyx_t_4) < 0)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
/* … */
  __pyx_tuple__35 = PyTuple_Pack(2, __pyx_int_365, __pyx_int_12); if (unlikely(!__pyx_tuple__35)) __PYX_ERR(0, 1326, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__35);
  __Pyx_GIVEREF(__pyx_tuple__35);
+1327:     self.delta_gains_regression['intercept'] = np.zeros((365,12))
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
    }
  }
  __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_3, __pyx_tuple__35) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_tuple__35);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_n_u_intercept, __pyx_t_4) < 0)) __PYX_ERR(0, 1327, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1328: 
+1329:     for x in range(0,365):
  for (__pyx_t_16 = 0; __pyx_t_16 < 0x16D; __pyx_t_16+=1) {
    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
 1330:       #fig = plt.figure()
 1331:       #coef_save = np.zeros((12,2))
 1332:       #regress for gains in oct-mar period and april-jul period
+1333:       for mm in range(0,12):
    for (__pyx_t_17 = 0; __pyx_t_17 < 12; __pyx_t_17+=1) {
      __pyx_v_mm = __pyx_t_17;
+1334:         if x <= self.dowy_eom[self.non_leap_year][mm]:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_x, __pyx_t_10, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 1334, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_12) {
/* … */
        goto __pyx_L27;
      }
+1335:           one_year_runfnf = self.running_fnf[x]
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_running_fnf); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_x); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF_SET(__pyx_v_one_year_runfnf, __pyx_t_10);
        __pyx_t_10 = 0;
+1336:           monthly_gains_predict = monthly_gains[mm]
        __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_monthly_gains, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1336, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_XDECREF_SET(__pyx_v_monthly_gains_predict, __pyx_t_10);
        __pyx_t_10 = 0;
 1337:         else:
+1338:           monthly_gains_predict = np.zeros(numYears_short-1)
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_numYears_short, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_10 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_monthly_gains_predict, __pyx_t_10);
        __pyx_t_10 = 0;
+1339:           one_year_runfnf = np.zeros(numYears_short-1)
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_v_numYears_short, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_10 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_XDECREF_SET(__pyx_v_one_year_runfnf, __pyx_t_10);
        __pyx_t_10 = 0;
+1340:           for yy in range(1,numYears_short):
        __pyx_t_10 = PyTuple_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_GIVEREF(__pyx_int_1);
        PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_int_1);
        __Pyx_INCREF(__pyx_v_numYears_short);
        __Pyx_GIVEREF(__pyx_v_numYears_short);
        PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_v_numYears_short);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_10, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
          __pyx_t_10 = __pyx_t_3; __Pyx_INCREF(__pyx_t_10); __pyx_t_6 = 0;
          __pyx_t_8 = NULL;
        } else {
          __pyx_t_6 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1340, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_8 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1340, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        for (;;) {
          if (likely(!__pyx_t_8)) {
            if (likely(PyList_CheckExact(__pyx_t_10))) {
              if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_10)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1340, __pyx_L1_error)
              #else
              __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1340, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
            } else {
              if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1340, __pyx_L1_error)
              #else
              __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1340, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
            }
          } else {
            __pyx_t_3 = __pyx_t_8(__pyx_t_10);
            if (unlikely(!__pyx_t_3)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1340, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_3);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_3);
          __pyx_t_3 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      }
      __pyx_L27:;
+1341:             monthly_gains_predict[yy-1] = monthly_gains[mm][yy]
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_monthly_gains, __pyx_v_mm, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (unlikely(PyObject_SetItem(__pyx_v_monthly_gains_predict, __pyx_t_3, __pyx_t_4) < 0)) __PYX_ERR(0, 1341, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1342:             one_year_runfnf[yy-1] = self.running_fnf[x][yy-1]
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_running_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_v_yy, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(PyObject_SetItem(__pyx_v_one_year_runfnf, __pyx_t_4, __pyx_t_5) < 0)) __PYX_ERR(0, 1342, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1343: 
 1344: 
+1345:         coef = np.polyfit(one_year_runfnf, monthly_gains_predict, 1)
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1345, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1345, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_13 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_13 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_one_year_runfnf, __pyx_v_monthly_gains_predict, __pyx_int_1};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1345, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_one_year_runfnf, __pyx_v_monthly_gains_predict, __pyx_int_1};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1345, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_10);
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_one_year_runfnf);
        __Pyx_GIVEREF(__pyx_v_one_year_runfnf);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_13, __pyx_v_one_year_runfnf);
        __Pyx_INCREF(__pyx_v_monthly_gains_predict);
        __Pyx_GIVEREF(__pyx_v_monthly_gains_predict);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_13, __pyx_v_monthly_gains_predict);
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_GIVEREF(__pyx_int_1);
        PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_13, __pyx_int_1);
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_10);
      __pyx_t_10 = 0;
+1346:         self.delta_gains_regression['slope'][x][mm] = coef[0]
      __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_slope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1346, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_4, __pyx_v_mm, __pyx_t_10, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1346, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1347:         self.delta_gains_regression['intercept'][x][mm] = coef[1]
      __pyx_t_10 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1347, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1347, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_intercept); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1347, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1347, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_4, __pyx_v_mm, __pyx_t_10, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 1347, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
  }
 1348:         #r = np.corrcoef(one_year_runfnf,monthly_gains_predict)[0,1]
 1349:         #coef_save[mm] = coef
 1350:       #for mm in range(0,12):
 1351:         #ax1 = fig.add_subplot(4,3,mm+1)
 1352:         #if x <= self.dowy_eom[mm]:
 1353:           #monthly_gains_predict = monthly_gains[mm]
 1354:           #one_year_runfnf = self.running_fnf[x]
 1355:         #else:
 1356:           #monthly_gains_predict = np.zeros(numYears_short-1)
 1357:           #one_year_runfnf = np.zeros(numYears_short-1)
 1358:           #for yy in range(1,numYears_short):
 1359:             #monthly_gains_predict[yy-1] = monthly_gains[mm][yy]
 1360:             #one_year_runfnf[yy-1] = self.running_fnf[x][yy-1]
 1361: 
 1362:         #ax1.scatter(one_year_runfnf, monthly_gains_predict, s=50, c='red', edgecolor='none', alpha=0.7)
 1363:         #ax1.plot([0.0, np.max(one_year_runfnf)], [coef_save[mm][1], (np.max(one_year_runfnf)*coef_save[mm][0] + coef_save[mm][1])],c='red')
 1364:       #ax1.set_xlim([np.min(one_year_runfnf), np.max(one_year_runfnf)])
 1365:       #plt.show()
 1366:       #plt.close()
 1367: 
 1368: 
+1369:   def find_all_triggers(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_31find_all_triggers(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_31find_all_triggers = {"find_all_triggers", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_31find_all_triggers, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_31find_all_triggers(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_all_triggers (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_30find_all_triggers(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_30find_all_triggers(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_a = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_z = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__36)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_all_triggers", 0);
  __Pyx_TraceCall("find_all_triggers", __pyx_f[0], 1369, 0, __PYX_ERR(0, 1369, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_all_triggers", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__104 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_a, __pyx_n_s_x, __pyx_n_s_z); if (unlikely(!__pyx_tuple__104)) __PYX_ERR(0, 1369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__104);
  __Pyx_GIVEREF(__pyx_tuple__104);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_31find_all_triggers, 0, __pyx_n_s_Model_find_all_triggers, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__36)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_all_triggers, __pyx_t_2) < 0) __PYX_ERR(0, 1369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__36 = (PyObject*)__Pyx_PyCode_New(1, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__104, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_all_triggers, 1369, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__36)) __PYX_ERR(0, 1369, __pyx_L1_error)
 1370:     #########################################################################################
 1371:     #this function searches through canals to find the maximum amount of
 1372: 	#water that can be taken from each reservoir at one time.  
 1373:     #########################################################################################
 1374: 
 1375: 	#The value self.reservoir.flood_flow_min is used to determine when uncontrolled releases
 1376: 	#are initiated at the reservoir
+1377:     for a in [self.isabella, self.millerton, self.kaweah, self.success, self.pineflat]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = PyTuple_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_6, 3, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_6, 4, __pyx_t_5);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_7 >= 5) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1377, __pyx_L1_error)
    #else
    __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1377, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1378:     #for each reservoir, clear the demands of each object
+1379:       for x in self.district_list:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_4 = __pyx_t_6; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1379, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1379, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1379, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1379, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1379, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1379, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_9(__pyx_t_4);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1379, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1380:         x.current_requested = 0.0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1380, __pyx_L1_error)
+1381:       for x in self.waterbank_list:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1381, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_6 = __pyx_t_4; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1381, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1381, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1381, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_4); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1381, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1381, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_9(__pyx_t_6);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1381, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1382:         x.current_requested = 0.0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1382, __pyx_L1_error)
+1383:       a.flood_flow_min = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_a, __pyx_n_s_flood_flow_min, __pyx_float_0_0) < 0) __PYX_ERR(0, 1383, __pyx_L1_error)
+1384:       for z in self.reservoir_canal[a.key]:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1384, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1384, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1384, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1384, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_9(__pyx_t_4);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1384, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1385:         #find all demands that can be reached from the reservoir
+1386:         a.flood_flow_min += self.find_flood_trigger(z, a.key, z.name, 'normal','recharge')
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_flood_flow_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = NULL;
      __pyx_t_12 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
          __pyx_t_12 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_v_z, __pyx_t_1, __pyx_t_10, __pyx_n_u_normal, __pyx_n_u_recharge};
        __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1386, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
        PyObject *__pyx_temp[6] = {__pyx_t_11, __pyx_v_z, __pyx_t_1, __pyx_t_10, __pyx_n_u_normal, __pyx_n_u_recharge};
        __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1386, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      } else
      #endif
      {
        __pyx_t_13 = PyTuple_New(5+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (__pyx_t_11) {
          __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
        }
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_10);
        PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_t_10);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_12, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_n_u_recharge);
        __Pyx_GIVEREF(__pyx_n_u_recharge);
        PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_12, __pyx_n_u_recharge);
        __pyx_t_1 = 0;
        __pyx_t_10 = 0;
        __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1386, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_a, __pyx_n_s_flood_flow_min, __pyx_t_2) < 0) __PYX_ERR(0, 1386, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1387: 
 1388: 	#also calculate for san luis - but split federal and state portions (uncontrolled releases are made seperately)
 1389:     #only want the demands that are associated w/ nodes that have a contract
+1390:     self.canal_contract['caa'] = [self.swpdelta]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyList_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_caa, __pyx_t_4) < 0)) __PYX_ERR(0, 1390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1391:     for x in self.district_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1391, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1391, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1391, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1391, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1391, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1391, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_9(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1391, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1392:       x.current_requested = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1392, __pyx_L1_error)
+1393:     for x in self.waterbank_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1393, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1393, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1393, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_5); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1393, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1393, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_9(__pyx_t_4);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1393, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1394:       x.current_requested = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1394, __pyx_L1_error)
+1395:     self.sanluisstate.flood_flow_min = self.find_flood_trigger(self.calaqueduct, self.sanluis.key, self.calaqueduct.name, 'normal', 'recharge')
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = NULL;
  __pyx_t_12 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_6)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_12 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_2, __pyx_t_3, __pyx_t_13, __pyx_n_u_normal, __pyx_n_u_recharge};
    __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1395, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_2, __pyx_t_3, __pyx_t_13, __pyx_n_u_normal, __pyx_n_u_recharge};
    __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1395, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_10 = PyTuple_New(5+__pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_6) {
      __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_6); __pyx_t_6 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_12, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_12, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_12, __pyx_t_13);
    __Pyx_INCREF(__pyx_n_u_normal);
    __Pyx_GIVEREF(__pyx_n_u_normal);
    PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_12, __pyx_n_u_normal);
    __Pyx_INCREF(__pyx_n_u_recharge);
    __Pyx_GIVEREF(__pyx_n_u_recharge);
    PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_12, __pyx_n_u_recharge);
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_13 = 0;
    __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_flood_flow_min, __pyx_t_4) < 0) __PYX_ERR(0, 1395, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1396:     #same thing for the federal portion
+1397:     self.canal_contract['caa'] = [self.cvpdelta, self.cvpexchange, self.crossvalley]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_13 = PyList_New(3); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_13, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_13, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_13, 2, __pyx_t_10);
  __pyx_t_5 = 0;
  __pyx_t_4 = 0;
  __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_n_u_caa, __pyx_t_13) < 0)) __PYX_ERR(0, 1397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1398:     for x in self.district_list:
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
    __pyx_t_10 = __pyx_t_13; __Pyx_INCREF(__pyx_t_10); __pyx_t_7 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1398, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_9 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1398, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_10))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_t_13); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1398, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_10, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_7); __Pyx_INCREF(__pyx_t_13); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1398, __pyx_L1_error)
        #else
        __pyx_t_13 = PySequence_ITEM(__pyx_t_10, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        #endif
      }
    } else {
      __pyx_t_13 = __pyx_t_9(__pyx_t_10);
      if (unlikely(!__pyx_t_13)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1398, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_13);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_13);
    __pyx_t_13 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1399:       x.current_requested = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1399, __pyx_L1_error)
+1400:     for x in self.waterbank_list:
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1400, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
    __pyx_t_13 = __pyx_t_10; __Pyx_INCREF(__pyx_t_13); __pyx_t_7 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1400, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_9 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1400, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_13))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1400, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_13, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1400, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_7); __Pyx_INCREF(__pyx_t_10); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1400, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_13, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1400, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      }
    } else {
      __pyx_t_10 = __pyx_t_9(__pyx_t_13);
      if (unlikely(!__pyx_t_10)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1400, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+1401:       x.current_requested = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_float_0_0) < 0) __PYX_ERR(0, 1401, __pyx_L1_error)
+1402:     self.sanluisfederal.flood_flow_min = self.find_flood_trigger(self.calaqueduct, self.sanluis.key, self.calaqueduct.name, 'normal', 'recharge')
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_12 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_10);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_10, function);
      __pyx_t_12 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_10)) {
    PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_t_4, __pyx_t_3, __pyx_t_2, __pyx_n_u_normal, __pyx_n_u_recharge};
    __pyx_t_13 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1402, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
    PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_t_4, __pyx_t_3, __pyx_t_2, __pyx_n_u_normal, __pyx_n_u_recharge};
    __pyx_t_13 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_12, 5+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1402, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(5+__pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_12, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_12, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_12, __pyx_t_2);
    __Pyx_INCREF(__pyx_n_u_normal);
    __Pyx_GIVEREF(__pyx_n_u_normal);
    PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_12, __pyx_n_u_normal);
    __Pyx_INCREF(__pyx_n_u_recharge);
    __Pyx_GIVEREF(__pyx_n_u_recharge);
    PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_12, __pyx_n_u_recharge);
    __pyx_t_4 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_13 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_6, NULL); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1402, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_10, __pyx_n_s_flood_flow_min, __pyx_t_13) < 0) __PYX_ERR(0, 1402, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1403:     #return the contract association on the california aqeuduct to all CVP & SWP delta contracts
+1404:     self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_10);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_13);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_13);
  __Pyx_GIVEREF(__pyx_t_6);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_t_6);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_t_2);
  __pyx_t_10 = 0;
  __pyx_t_13 = 0;
  __pyx_t_6 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_caa, __pyx_t_3) < 0)) __PYX_ERR(0, 1404, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 1405: 
+1406:   def find_flood_trigger(self, canal, prev_canal, contract_canal, flow_dir,flow_type):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_33find_flood_trigger(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_33find_flood_trigger = {"find_flood_trigger", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_33find_flood_trigger, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_33find_flood_trigger(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_prev_canal = 0;
  PyObject *__pyx_v_contract_canal = 0;
  PyObject *__pyx_v_flow_dir = 0;
  PyObject *__pyx_v_flow_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_flood_trigger (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_contract_canal,&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, 1); __PYX_ERR(0, 1406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, 2); __PYX_ERR(0, 1406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, 3); __PYX_ERR(0, 1406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, 4); __PYX_ERR(0, 1406, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, 5); __PYX_ERR(0, 1406, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_flood_trigger") < 0)) __PYX_ERR(0, 1406, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_self = values[0];
    __pyx_v_canal = values[1];
    __pyx_v_prev_canal = values[2];
    __pyx_v_contract_canal = values[3];
    __pyx_v_flow_dir = values[4];
    __pyx_v_flow_type = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_flood_trigger", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1406, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_flood_trigger", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_32find_flood_trigger(__pyx_self, __pyx_v_self, __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_v_flow_dir, __pyx_v_flow_type);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_32find_flood_trigger(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type) {
  PyObject *__pyx_v_starting_point = NULL;
  PyObject *__pyx_v_new_canal = NULL;
  PyObject *__pyx_v_canal_size = NULL;
  PyObject *__pyx_v_canal_range = NULL;
  PyObject *__pyx_v_tot_contractor_demand = NULL;
  PyObject *__pyx_v_canal_loc = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_new_loc_demand = NULL;
  long __pyx_v_contractor_toggle;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_yx = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_new_flow_dir = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__37)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_flood_trigger", 0);
  __Pyx_TraceCall("find_flood_trigger", __pyx_f[0], 1406, 0, __PYX_ERR(0, 1406, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_flood_trigger", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_starting_point);
  __Pyx_XDECREF(__pyx_v_new_canal);
  __Pyx_XDECREF(__pyx_v_canal_size);
  __Pyx_XDECREF(__pyx_v_canal_range);
  __Pyx_XDECREF(__pyx_v_tot_contractor_demand);
  __Pyx_XDECREF(__pyx_v_canal_loc);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_new_loc_demand);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_yx);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_new_flow_dir);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__105 = PyTuple_Pack(20, __pyx_n_s_self, __pyx_n_s_canal, __pyx_n_s_prev_canal, __pyx_n_s_contract_canal, __pyx_n_s_flow_dir, __pyx_n_s_flow_type, __pyx_n_s_starting_point, __pyx_n_s_new_canal, __pyx_n_s_canal_size, __pyx_n_s_canal_range, __pyx_n_s_tot_contractor_demand, __pyx_n_s_canal_loc, __pyx_n_s_x, __pyx_n_s_new_loc_demand, __pyx_n_s_contractor_toggle, __pyx_n_s_y, __pyx_n_s_yx, __pyx_n_s_xx, __pyx_n_s_wb_member, __pyx_n_s_new_flow_dir); if (unlikely(!__pyx_tuple__105)) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__105);
  __Pyx_GIVEREF(__pyx_tuple__105);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_33find_flood_trigger, 0, __pyx_n_s_Model_find_flood_trigger, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__37)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_flood_trigger, __pyx_t_2) < 0) __PYX_ERR(0, 1406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(6, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__105, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_flood_trigger, 1406, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 1406, __pyx_L1_error)
 1407:     #########################################################################################
 1408:     #this function loops through the canal nodes looking for recharge storage attached
 1409: 	#to particular contracts.
 1410:     #########################################################################################
 1411: 
 1412: 	#finds where on the canal to begin (if coming from another canal), and 
 1413: 	#where to end (either the end or beginning of canal, depending on flow direction)
+1414:     for starting_point, new_canal in enumerate(self.canal_district[canal.name]):
  __Pyx_INCREF(__pyx_int_0);
  __pyx_t_1 = __pyx_int_0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1414, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1414, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_6(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1414, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_new_canal, __pyx_t_4);
    __pyx_t_4 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_4;
    __pyx_t_4 = 0;
/* … */
  }
  __pyx_L4_break:;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1415:       if new_canal.key == prev_canal:#find canal intersections
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_7) {
/* … */
    }
+1416:         break
      goto __pyx_L4_break;
+1417:     if flow_dir == "normal":
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1417, __pyx_L1_error)
  if (__pyx_t_7) {
/* … */
    goto __pyx_L6;
  }
+1418:       canal_size = self.canal_district_len[canal.name]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1418, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_canal_size = __pyx_t_2;
    __pyx_t_2 = 0;
+1419:       canal_range = range((starting_point+1),canal_size)
    if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 1419, __pyx_L1_error) }
    __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_starting_point, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_canal_size);
    __Pyx_GIVEREF(__pyx_v_canal_size);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_canal_size);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_canal_range = __pyx_t_2;
    __pyx_t_2 = 0;
+1420:     elif flow_dir == "reverse":
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1420, __pyx_L1_error)
  if (__pyx_t_7) {
/* … */
    goto __pyx_L6;
  }
+1421:       canal_range = range((starting_point-1),0,-1)
    if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 1421, __pyx_L1_error) }
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_starting_point, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_int_0);
    __Pyx_INCREF(__pyx_int_neg_1);
    __Pyx_GIVEREF(__pyx_int_neg_1);
    PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_neg_1);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_canal_range = __pyx_t_2;
    __pyx_t_2 = 0;
 1422:     else:
+1423:       return (0.0)
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_r = __pyx_float_0_0;
    goto __pyx_L0;
  }
  __pyx_L6:;
 1424: 
+1425:     tot_contractor_demand = 0.0#initialize total demand on the canal
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_tot_contractor_demand = __pyx_float_0_0;
+1426:     for canal_loc in canal_range:#loop through the flow range on the canal (determined above)
  if (likely(PyList_CheckExact(__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_v_canal_range)) {
    __pyx_t_2 = __pyx_v_canal_range; __Pyx_INCREF(__pyx_t_2); __pyx_t_5 = 0;
    __pyx_t_6 = NULL;
  } else {
    __pyx_t_5 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_canal_range); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1426, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_6)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 1426, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1426, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_6(__pyx_t_2);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1426, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1427:       x = self.canal_district[canal.name][canal_loc]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_canal_loc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
+1428:       if x.is_District == 1:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_District); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1428, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L9;
    }
+1429:         new_loc_demand = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
+1430:         contractor_toggle = 0
      __pyx_v_contractor_toggle = 0;
 1431: 		#find if the node has a particular contract
+1432:         for y in self.canal_contract[contract_canal]:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_contract_canal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1432, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1432, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1432, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1432, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1432, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_9(__pyx_t_4);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1432, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1433:           for yx in x.contract_list:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
        } else {
          __pyx_t_10 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1433, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1433, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_11)) {
            if (likely(PyList_CheckExact(__pyx_t_3))) {
              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1433, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1433, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1433, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_11(__pyx_t_3);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1433, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_yx, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1434:             if y.name == yx:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1434, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_12 = PyObject_RichCompare(__pyx_t_1, __pyx_v_yx, Py_EQ); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1434, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1434, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_7) {
/* … */
          }
+1435:               contractor_toggle = 1
            __pyx_v_contractor_toggle = 1;
 1436:         #calculate teh maximium recharge storage
+1437:         if contractor_toggle == 1:
      __pyx_t_7 = ((__pyx_v_contractor_toggle == 1) != 0);
      if (__pyx_t_7) {
/* … */
      }
+1438:           new_loc_demand = min(canal.turnout[flow_dir][canal_loc]*cfs_tafd, max(x.in_district_storage - x.current_requested, 0.0))
        __pyx_t_13 = 0.0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_district_storage); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_current_requested); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_12 = PyNumber_Subtract(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_4 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_t_12, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_7) {
          __pyx_t_1 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_3 = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_12);
          __pyx_t_3 = __pyx_t_12;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_12 = __pyx_t_3;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_flow_dir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_12, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1438, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_7) {
          __Pyx_INCREF(__pyx_t_12);
          __pyx_t_1 = __pyx_t_12;
        } else {
          __Pyx_INCREF(__pyx_t_4);
          __pyx_t_1 = __pyx_t_4;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __pyx_t_1;
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_12);
        __pyx_t_12 = 0;
+1439:           tot_contractor_demand += new_loc_demand
        __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1439, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_12);
        __pyx_t_12 = 0;
+1440:           x.current_requested += new_loc_demand
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_current_requested); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_t_1) < 0) __PYX_ERR(0, 1440, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1441: 
+1442:       elif x.is_Waterbank == 1:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1442, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L9;
    }
+1443:         new_loc_demand = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
 1444:         #at a waterbank, find if the bank member has a contract
+1445:         for xx in x.participant_list:
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1445, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
        __pyx_t_1 = __pyx_t_12; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1445, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1445, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_12 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1445, __pyx_L1_error)
            #else
            __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1445, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_12); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1445, __pyx_L1_error)
            #else
            __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1445, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            #endif
          }
        } else {
          __pyx_t_12 = __pyx_t_9(__pyx_t_1);
          if (unlikely(!__pyx_t_12)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1445, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_12);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_12);
        __pyx_t_12 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1446:           contractor_toggle = 0
        __pyx_v_contractor_toggle = 0;
+1447:           for wb_member in self.district_keys[xx]:
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1447, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
        } else {
          __pyx_t_10 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1447, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_11 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1447, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_11)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1447, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1447, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1447, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1447, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_11(__pyx_t_12);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1447, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __pyx_L19_break:;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1448:             for y in self.canal_contract[contract_canal]:
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1448, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_contract_canal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1448, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
            __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_14 = 0;
            __pyx_t_15 = NULL;
          } else {
            __pyx_t_14 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_15 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1448, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          for (;;) {
            if (likely(!__pyx_t_15)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 1448, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1448, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              } else {
                if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_14); __Pyx_INCREF(__pyx_t_3); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 1448, __pyx_L1_error)
                #else
                __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1448, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                #endif
              }
            } else {
              __pyx_t_3 = __pyx_t_15(__pyx_t_4);
              if (unlikely(!__pyx_t_3)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1448, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_3);
            }
            __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_3);
            __pyx_t_3 = 0;
/* … */
          }
          __pyx_L21_break:;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1449:               for yx in wb_member.contract_list:
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1449, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
              __pyx_t_16 = __pyx_t_3; __Pyx_INCREF(__pyx_t_16); __pyx_t_17 = 0;
              __pyx_t_18 = NULL;
            } else {
              __pyx_t_17 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1449, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_18 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1449, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            for (;;) {
              if (likely(!__pyx_t_18)) {
                if (likely(PyList_CheckExact(__pyx_t_16))) {
                  if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_16)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_3 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1449, __pyx_L1_error)
                  #else
                  __pyx_t_3 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1449, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  #endif
                } else {
                  if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_17); __Pyx_INCREF(__pyx_t_3); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1449, __pyx_L1_error)
                  #else
                  __pyx_t_3 = PySequence_ITEM(__pyx_t_16, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1449, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  #endif
                }
              } else {
                __pyx_t_3 = __pyx_t_18(__pyx_t_16);
                if (unlikely(!__pyx_t_3)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 1449, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_3);
              }
              __Pyx_XDECREF_SET(__pyx_v_yx, __pyx_t_3);
              __pyx_t_3 = 0;
/* … */
            }
            __pyx_L23_break:;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+1450:                 if y.name == yx:
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1450, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_19 = PyObject_RichCompare(__pyx_t_3, __pyx_v_yx, Py_EQ); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1450, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1450, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (__pyx_t_7) {
/* … */
              }
+1451:                   contractor_toggle = 1
                __pyx_v_contractor_toggle = 1;
+1452:                   break
                goto __pyx_L23_break;
+1453:               if contractor_toggle == 1:
            __pyx_t_7 = ((__pyx_v_contractor_toggle == 1) != 0);
            if (__pyx_t_7) {
/* … */
            }
+1454:                 break
              goto __pyx_L21_break;
+1455:             if contractor_toggle == 1:
          __pyx_t_7 = ((__pyx_v_contractor_toggle == 1) != 0);
          if (__pyx_t_7) {
/* … */
          }
+1456:               break
            goto __pyx_L19_break;
+1457:           if contractor_toggle == 1:
        __pyx_t_7 = ((__pyx_v_contractor_toggle == 1) != 0);
        if (__pyx_t_7) {
/* … */
        }
+1458:             new_loc_demand += max(x.tot_storage*x.ownership[xx],0.0)#only account for member-owned storage
          __pyx_t_13 = 0.0;
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_tot_storage); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_ownership); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Multiply(__pyx_t_12, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_12 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_19 = PyObject_RichCompare(__pyx_t_12, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          if (__pyx_t_7) {
            __pyx_t_19 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1458, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_16 = __pyx_t_19;
            __pyx_t_19 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_4);
            __pyx_t_16 = __pyx_t_4;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_new_loc_demand, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_4);
          __pyx_t_4 = 0;
+1459:         new_loc_demand -= x.current_requested
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_current_requested); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_v_new_loc_demand, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_4);
      __pyx_t_4 = 0;
 1460:         #make sure storage doesn't exceed the turnout capacity
+1461:         if new_loc_demand > canal.turnout[flow_dir][canal_loc]*cfs_tafd:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_flow_dir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_canal_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_16 = PyNumber_Multiply(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_new_loc_demand, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1461, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_7) {
/* … */
      }
+1462:           new_loc_demand = canal.turnout[flow_dir][canal_loc]*cfs_tafd
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_flow_dir); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_canal_loc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_4);
        __pyx_t_4 = 0;
+1463:         x.current_requested += new_loc_demand
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_current_requested); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1463, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1463, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_current_requested, __pyx_t_16) < 0) __PYX_ERR(0, 1463, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+1464:         tot_contractor_demand += new_loc_demand
      __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1464, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_16);
      __pyx_t_16 = 0;
 1465: 
 1466:       #if a node is a canal node, jump to that canal (function calls itself, but for another canal) 
+1467:       elif x.is_Canal == 1:
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_16, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1467, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_7) {
/* … */
    }
    __pyx_L9:;
+1468:         new_loc_demand = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_new_loc_demand, __pyx_float_0_0);
+1469:         if canal.turnout[flow_dir][canal_loc] > 0.0:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_flow_dir); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_canal_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_16 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1469, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1469, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      if (__pyx_t_7) {
/* … */
      }
+1470:           new_flow_dir = canal.flow_directions[flow_type][x.name]
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1470, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_flow_type); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1470, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_name); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1470, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_16); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1470, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_XDECREF_SET(__pyx_v_new_flow_dir, __pyx_t_1);
        __pyx_t_1 = 0;
+1471:           new_loc_demand = self.find_flood_trigger(x, canal.key, contract_canal, new_flow_dir,flow_type)
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_flood_trigger); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_19 = NULL;
        __pyx_t_20 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
          __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_16);
          if (likely(__pyx_t_19)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
            __Pyx_INCREF(__pyx_t_19);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_16, function);
            __pyx_t_20 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_16)) {
          PyObject *__pyx_temp[6] = {__pyx_t_19, __pyx_v_x, __pyx_t_4, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_20, 5+__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
          PyObject *__pyx_temp[6] = {__pyx_t_19, __pyx_v_x, __pyx_t_4, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_20, 5+__pyx_t_20); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_12 = PyTuple_New(5+__pyx_t_20); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1471, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          if (__pyx_t_19) {
            __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_19); __pyx_t_19 = NULL;
          }
          __Pyx_INCREF(__pyx_v_x);
          __Pyx_GIVEREF(__pyx_v_x);
          PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_20, __pyx_v_x);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_20, __pyx_t_4);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_20, __pyx_v_contract_canal);
          __Pyx_INCREF(__pyx_v_new_flow_dir);
          __Pyx_GIVEREF(__pyx_v_new_flow_dir);
          PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_20, __pyx_v_new_flow_dir);
          __Pyx_INCREF(__pyx_v_flow_type);
          __Pyx_GIVEREF(__pyx_v_flow_type);
          PyTuple_SET_ITEM(__pyx_t_12, 4+__pyx_t_20, __pyx_v_flow_type);
          __pyx_t_4 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1471, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_1);
        __pyx_t_1 = 0;
+1472:           if new_loc_demand > canal.turnout[flow_dir][canal_loc]*cfs_tafd:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_flow_dir); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_canal_loc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_12 = PyNumber_Multiply(__pyx_t_1, __pyx_t_16); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = PyObject_RichCompare(__pyx_v_new_loc_demand, __pyx_t_12, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 1472, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        if (__pyx_t_7) {
/* … */
        }
+1473:             new_loc_demand = canal.turnout[flow_dir][canal_loc]*cfs_tafd
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1473, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_flow_dir); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1473, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_canal_loc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1473, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1473, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_1 = PyNumber_Multiply(__pyx_t_16, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1473, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF_SET(__pyx_v_new_loc_demand, __pyx_t_1);
          __pyx_t_1 = 0;
+1474:           tot_contractor_demand += new_loc_demand
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_contractor_demand, __pyx_v_new_loc_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1474, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_tot_contractor_demand, __pyx_t_1);
        __pyx_t_1 = 0;
 1475: 	#return total demand on the canal
+1476:     return tot_contractor_demand
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_tot_contractor_demand);
  __pyx_r = __pyx_v_tot_contractor_demand;
  goto __pyx_L0;
 1477: 
 1478: 
+1479:   def find_initial_carryover(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_35find_initial_carryover(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_35find_initial_carryover = {"find_initial_carryover", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_35find_initial_carryover, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_35find_initial_carryover(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_initial_carryover (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_34find_initial_carryover(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_34find_initial_carryover(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *__pyx_v_tot_state = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_tot_federal = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_total_alloc_state = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_total_alloc_federal = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_reservoir = NULL;
  PyObject *__pyx_v_this_reservoir_all_contract = NULL;
  PyObject *__pyx_v_priority_allocation = NULL;
  PyObject *__pyx_v_secondary_allocation = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__38)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_initial_carryover", 0);
  __Pyx_TraceCall("find_initial_carryover", __pyx_f[0], 1479, 0, __PYX_ERR(0, 1479, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_initial_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tot_state);
  __Pyx_XDECREF(__pyx_v_tot_federal);
  __Pyx_XDECREF(__pyx_v_total_alloc_state);
  __Pyx_XDECREF(__pyx_v_total_alloc_federal);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_reservoir);
  __Pyx_XDECREF(__pyx_v_this_reservoir_all_contract);
  __Pyx_XDECREF(__pyx_v_priority_allocation);
  __Pyx_XDECREF(__pyx_v_secondary_allocation);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__106 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_tot_state, __pyx_n_s_tot_federal, __pyx_n_s_total_alloc_state, __pyx_n_s_total_alloc_federal, __pyx_n_s_y, __pyx_n_s_reservoir, __pyx_n_s_this_reservoir_all_contract, __pyx_n_s_priority_allocation, __pyx_n_s_secondary_allocation, __pyx_n_s_yy, __pyx_n_s_x); if (unlikely(!__pyx_tuple__106)) __PYX_ERR(0, 1479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__106);
  __Pyx_GIVEREF(__pyx_tuple__106);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_35find_initial_carryover, 0, __pyx_n_s_Model_find_initial_carryover, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__38)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_initial_carryover, __pyx_t_2) < 0) __PYX_ERR(0, 1479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__38 = (PyObject*)__Pyx_PyCode_New(1, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__106, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_initial_carryover, 1479, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__38)) __PYX_ERR(0, 1479, __pyx_L1_error)
 1480:     #########################################################################################
 1481: 	#takes the storage that exists at the start of the simulation and applies it either to 
 1482: 	#carryover storage or to the next year's (first year of simulation) allocation
 1483:     #########################################################################################
 1484: 
+1485:     tot_state = self.sanluisstate.S[0]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1485, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_tot_state = __pyx_t_1;
  __pyx_t_1 = 0;
+1486:     tot_federal = self.sanluisfederal.S[0]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1486, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_tot_federal = __pyx_t_1;
  __pyx_t_1 = 0;
+1487:     total_alloc_state = self.swpdelta.total
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1487, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_total_alloc_state = __pyx_t_2;
  __pyx_t_2 = 0;
+1488:     total_alloc_federal = self.cvpdelta.total + self.cvpexchange.total
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_total); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_total_alloc_federal = __pyx_t_2;
  __pyx_t_2 = 0;
+1489:     for y in self.contract_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1489, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1489, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1489, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1489, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1489, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1489, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1490:       reservoir = self.contract_reservoir[y.key]
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_6);
    __pyx_t_6 = 0;
 1491:       #then find all the contracts associated with that reservoir
+1492:       this_reservoir_all_contract = self.reservoir_contract[reservoir.key]
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_2);
    __pyx_t_2 = 0;
 1493:       #need to find the total deliveries already made from the reservoir,
 1494: 	  #total carryover storage at the reservoir, and the total priority/secondary allocations
 1495: 	  #at that reservoir
+1496:       priority_allocation = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_priority_allocation, __pyx_float_0_0);
+1497:       secondary_allocation = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_secondary_allocation, __pyx_float_0_0);
+1498:       for yy in this_reservoir_all_contract:
    if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) {
      __pyx_t_2 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1498, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1498, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1498, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1498, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1498, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_8(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1498, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1499:         if yy.allocation_priority == 1:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1499, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1499, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_9) {
/* … */
        goto __pyx_L7;
      }
+1500:           priority_allocation += yy.total
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_total); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1500, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_priority_allocation, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1500, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF_SET(__pyx_v_priority_allocation, __pyx_t_1);
        __pyx_t_1 = 0;
 1501:         else:
+1502:           secondary_allocation += yy.total
      /*else*/ {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1502, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_secondary_allocation, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1502, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_secondary_allocation, __pyx_t_6);
        __pyx_t_6 = 0;
      }
      __pyx_L7:;
 1503: 
+1504:       if y.allocation_priority == 1:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_t_2, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1504, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1504, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_9) {
/* … */
      goto __pyx_L8;
    }
+1505:         if priority_allocation > 0.0:
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_priority_allocation, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1505, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1505, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_9) {
/* … */
        goto __pyx_L9;
      }
+1506:           y.tot_new_alloc = (reservoir.S[0] - reservoir.dead_pool)*max(y.total/priority_allocation, 1.0)
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_6, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_dead_pool); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_10 = 1.0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_total); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_v_priority_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_11 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = PyObject_RichCompare(__pyx_t_11, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__pyx_t_9) {
          __pyx_t_12 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1506, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_6 = __pyx_t_12;
          __pyx_t_12 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_6 = __pyx_t_2;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_t_2) < 0) __PYX_ERR(0, 1506, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1507:         else:
+1508:           y.tot_new_alloc = 0.0
      /*else*/ {
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_float_0_0) < 0) __PYX_ERR(0, 1508, __pyx_L1_error)
      }
      __pyx_L9:;
 1509:       else:
+1510:         if secondary_allocation > 0.0:
    /*else*/ {
      __pyx_t_2 = PyObject_RichCompare(__pyx_v_secondary_allocation, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1510, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1510, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_9) {
/* … */
        goto __pyx_L10;
      }
+1511:           y.tot_new_alloc = max(reservoir.S[0] - reservoir.dead_pool - priority_allocation, 0.0)*y.total/secondary_allocation
        __pyx_t_10 = 0.0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_dead_pool); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_priority_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__pyx_t_9) {
          __pyx_t_12 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1511, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_1 = __pyx_t_12;
          __pyx_t_12 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_1 = __pyx_t_2;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_total); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_12 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_v_secondary_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_t_2) < 0) __PYX_ERR(0, 1511, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1512:         else:
+1513:           y.tot_new_alloc = 0.0
      /*else*/ {
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_float_0_0) < 0) __PYX_ERR(0, 1513, __pyx_L1_error)
      }
      __pyx_L10:;
    }
    __pyx_L8:;
 1514: 
+1515:       for x in self.district_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1515, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_12 = __pyx_t_2; __Pyx_INCREF(__pyx_t_12); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1515, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1515, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1515, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_7); __Pyx_INCREF(__pyx_t_2); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1515, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1515, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_8(__pyx_t_12);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1515, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+1516:         x.carryover[y.name] = 0.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1516, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_1, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1516, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1517: 
 1518: 
+1519:   def allocate_private_contracts(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_37allocate_private_contracts(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_37allocate_private_contracts = {"allocate_private_contracts", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_37allocate_private_contracts, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_37allocate_private_contracts(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("allocate_private_contracts (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_36allocate_private_contracts(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_36allocate_private_contracts(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_crop_life = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_crops = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_land_keys = NULL;
  PyObject *__pyx_v_district_land = NULL;
  PyObject *__pyx_v_private_crop_types = NULL;
  PyObject *__pyx_v_contract = NULL;
  PyObject *__pyx_v_total_acres = NULL;
  PyObject *__pyx_v_private_acres = NULL;
  PyObject *__pyx_v_private_crops = NULL;
  PyObject *__pyx_v_future_year = NULL;
  PyObject *__pyx_v_crop_year = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_pump_keys = NULL;
  PyObject *__pyx_v_pump = NULL;
  PyObject *__pyx_v_future_years = NULL;
  CYTHON_UNUSED PyObject *__pyx_8genexpr7__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__39)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("allocate_private_contracts", 0);
  __Pyx_TraceCall("allocate_private_contracts", __pyx_f[0], 1519, 0, __PYX_ERR(0, 1519, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.allocate_private_contracts", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_crop_life);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_crops);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_land_keys);
  __Pyx_XDECREF(__pyx_v_district_land);
  __Pyx_XDECREF(__pyx_v_private_crop_types);
  __Pyx_XDECREF(__pyx_v_contract);
  __Pyx_XDECREF(__pyx_v_total_acres);
  __Pyx_XDECREF(__pyx_v_private_acres);
  __Pyx_XDECREF(__pyx_v_private_crops);
  __Pyx_XDECREF(__pyx_v_future_year);
  __Pyx_XDECREF(__pyx_v_crop_year);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_pump_keys);
  __Pyx_XDECREF(__pyx_v_pump);
  __Pyx_XDECREF(__pyx_v_future_years);
  __Pyx_XDECREF(__pyx_8genexpr7__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__107 = PyTuple_Pack(19, __pyx_n_s_self, __pyx_n_s_crop_life, __pyx_n_s_district, __pyx_n_s_crops, __pyx_n_s_x, __pyx_n_s_land_keys, __pyx_n_s_district_land, __pyx_n_s_private_crop_types, __pyx_n_s_contract, __pyx_n_s_total_acres, __pyx_n_s_private_acres, __pyx_n_s_private_crops, __pyx_n_s_future_year, __pyx_n_s_crop_year, __pyx_n_s_i, __pyx_n_s_pump_keys, __pyx_n_s_pump_2, __pyx_n_s_future_years, __pyx_n_s__12); if (unlikely(!__pyx_tuple__107)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__107);
  __Pyx_GIVEREF(__pyx_tuple__107);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_37allocate_private_contracts, 0, __pyx_n_s_Model_allocate_private_contracts, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__39)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_allocate_private_contracts, __pyx_t_2) < 0) __PYX_ERR(0, 1519, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(1, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__107, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_allocate_private_contracts, 1519, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 1519, __pyx_L1_error)
+1520:     crop_life = 25
  __Pyx_INCREF(__pyx_int_25);
  __pyx_v_crop_life = __pyx_int_25;
+1521:     for district in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1521, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1521, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1521, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1521, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1521, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1522:       district.private_acreage = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1522, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_district, __pyx_n_s_private_acreage, __pyx_t_1) < 0) __PYX_ERR(0, 1522, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1523:       if district.has_pesticide:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1523, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
/* … */
      goto __pyx_L5;
    }
+1524:         district.private_fraction = [0.0 for _ in range(self.number_years)]
      { /* enter inner scope */
        __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1524, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1524, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1524, __pyx_L8_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
          __pyx_t_9 = NULL;
        } else {
          __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1524, __pyx_L8_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1524, __pyx_L8_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_9)) {
            if (likely(PyList_CheckExact(__pyx_t_6))) {
              if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1524, __pyx_L8_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1524, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_7); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1524, __pyx_L8_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1524, __pyx_L8_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_9(__pyx_t_6);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1524, __pyx_L8_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_8genexpr7__pyx_v__, __pyx_t_7);
          __pyx_t_7 = 0;
          if (unlikely(__Pyx_ListComp_Append(__pyx_t_1, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1524, __pyx_L8_error)
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF(__pyx_8genexpr7__pyx_v__); __pyx_8genexpr7__pyx_v__ = 0;
        goto __pyx_L11_exit_scope;
        __pyx_L8_error:;
        __Pyx_XDECREF(__pyx_8genexpr7__pyx_v__); __pyx_8genexpr7__pyx_v__ = 0;
        goto __pyx_L1_error;
        __pyx_L11_exit_scope:;
      } /* exit inner scope */
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_district, __pyx_n_s_private_fraction, __pyx_t_1) < 0) __PYX_ERR(0, 1524, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1525:         for crops in district.acreage_by_year:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1525, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1525, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1525, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1525, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_9(__pyx_t_6);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1525, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1526:           district.private_acreage[crops] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
          }
        }
        __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_11, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_7);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_crops, __pyx_t_1) < 0)) __PYX_ERR(0, 1526, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1527:       elif district.has_pmp:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1527, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_5) {
/* … */
      goto __pyx_L5;
    }
+1528:         for crops in district.pmp_acreage:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1528, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1528, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1528, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1528, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1528, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_9(__pyx_t_1);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1528, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1529:           district.private_acreage[crops] = 0.0
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1529, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1529, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 1530:       else:
+1531:         district.private_fraction = [0.0]
    /*else*/ {
      __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1531, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_GIVEREF(__pyx_float_0_0);
      PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_district, __pyx_n_s_private_fraction, __pyx_t_1) < 0) __PYX_ERR(0, 1531, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1532:         for crops in district.crop_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1532, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1532, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1532, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1532, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1532, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1532, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1532, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_9(__pyx_t_6);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1532, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __pyx_L5:;
+1533:           district.private_acreage[crops] = 0.0
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1533, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1533, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1534:     for x in self.private_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_6 = __pyx_t_2; __Pyx_INCREF(__pyx_t_6); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1534, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1534, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_6))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1534, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1534, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1534, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_6, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1534, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_6);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1534, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1535:       x.acreage = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1535, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_acreage, __pyx_t_2) < 0) __PYX_ERR(0, 1535, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1536:       x.contract_fraction = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_fraction, __pyx_t_2) < 0) __PYX_ERR(0, 1536, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1537:       x.private_fraction = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction, __pyx_t_2) < 0) __PYX_ERR(0, 1537, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1538:       x.contract_list = []
    __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1538, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_list, __pyx_t_2) < 0) __PYX_ERR(0, 1538, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1539:       x.initial_planting = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting, __pyx_t_2) < 0) __PYX_ERR(0, 1539, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1540:       x.has_pesticide = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1540, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide, __pyx_t_2) < 0) __PYX_ERR(0, 1540, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1541:       x.has_pmp = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_has_pmp, __pyx_t_2) < 0) __PYX_ERR(0, 1541, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1542:       for land_keys in x.district_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1542, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1542, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1542, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1542, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1542, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1542, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_land_keys, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1543:         district_land = self.district_keys[land_keys]
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1543, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_land, __pyx_t_10);
      __pyx_t_10 = 0;
+1544:         if district_land.has_pesticide:
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1544, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1544, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_5) {
/* … */
        goto __pyx_L22;
      }
+1545:           x.has_pesticide[land_keys] = 1
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1545, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_land_keys, __pyx_int_1) < 0)) __PYX_ERR(0, 1545, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1546:           x.has_pmp[land_keys] = 0
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1546, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_land_keys, __pyx_int_0) < 0)) __PYX_ERR(0, 1546, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1547:         else:
+1548:           x.has_pesticide[land_keys] = 0
      /*else*/ {
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1548, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_land_keys, __pyx_int_0) < 0)) __PYX_ERR(0, 1548, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1549:           if district_land.has_pmp:
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1549, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1549, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_5) {
/* … */
          goto __pyx_L23;
        }
+1550:             x.has_pmp[land_keys] = 1
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1550, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_land_keys, __pyx_int_1) < 0)) __PYX_ERR(0, 1550, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 1551:           else:
+1552:             x.has_pmp[land_keys] = 0
        /*else*/ {
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1552, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_v_land_keys, __pyx_int_0) < 0)) __PYX_ERR(0, 1552, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __pyx_L23:;
      }
      __pyx_L22:;
+1553:       for land_keys in x.district_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_10 = __pyx_t_1; __Pyx_INCREF(__pyx_t_10); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1553, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_9 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1553, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_10))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1553, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_10, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1553, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_10, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1553, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_9(__pyx_t_10);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1553, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_land_keys, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1554:         x.acreage[land_keys] = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1554, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1554, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_land_keys, __pyx_t_1) < 0)) __PYX_ERR(0, 1554, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1555:         x.initial_planting[land_keys] = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_land_keys, __pyx_t_1) < 0)) __PYX_ERR(0, 1555, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1556:         for crops in x.crop_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1556, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1556, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1556, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1556, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1556, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_13(__pyx_t_2);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1556, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1557:           if x.has_pesticide[land_keys]:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1557, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1557, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1557, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_5) {
/* … */
          goto __pyx_L28;
        }
+1558:             x.initial_planting[land_keys][crops] = np.zeros(self.number_years)
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_11);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_11, function);
            }
          }
          __pyx_t_7 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_14, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_t_1);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_land_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_crops, __pyx_t_7) < 0)) __PYX_ERR(0, 1558, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1559:           else:
+1560:             x.initial_planting[land_keys][crops] = 0.0
        /*else*/ {
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1560, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_crops, __pyx_float_0_0) < 0)) __PYX_ERR(0, 1560, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
        __pyx_L28:;
+1561:         for private_crop_types in x.crop_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1561, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1561, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1561, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1561, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1561, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1561, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1561, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_13(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1561, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_private_crop_types, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1562:           x.acreage[land_keys][private_crop_types] = np.zeros(crop_life)
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_11))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_11);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_11, function);
          }
        }
        __pyx_t_2 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_11, __pyx_t_7, __pyx_v_crop_life) : __Pyx_PyObject_CallOneArg(__pyx_t_11, __pyx_v_crop_life);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_land_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_private_crop_types, __pyx_t_2) < 0)) __PYX_ERR(0, 1562, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1563: 
+1564:         district_land = self.district_keys[land_keys]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1564, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1564, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_land, __pyx_t_2);
      __pyx_t_2 = 0;
+1565:         for contract in district_land.contract_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1565, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1565, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1565, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1565, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1565, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1565, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1565, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_13(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1565, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1566:           if contract not in x.contract_list:
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1566, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract, __pyx_t_2, Py_NE)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1566, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_15 = (__pyx_t_5 != 0);
        if (__pyx_t_15) {
/* … */
        }
+1567:             x.contract_list.append(contract)
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1567, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_16 = __Pyx_PyObject_Append(__pyx_t_2, __pyx_v_contract); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1567, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1568: 
+1569:         if district_land.has_pesticide:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1569, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1569, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_15) {
/* … */
        goto __pyx_L34;
      }
+1570:           x.private_fraction[land_keys] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_11, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_land_keys, __pyx_t_1) < 0)) __PYX_ERR(0, 1570, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1571:           total_acres = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1571, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_total_acres, __pyx_t_1);
        __pyx_t_1 = 0;
+1572:           private_acres = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_11, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_private_acres, __pyx_t_1);
        __pyx_t_1 = 0;
 1573:         else:
+1574:           x.private_fraction[land_keys] = np.zeros(self.number_years)
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_1 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_11, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_7);
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_land_keys, __pyx_t_1) < 0)) __PYX_ERR(0, 1574, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1575:           total_acres = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_total_acres, __pyx_float_0_0);
+1576:           private_acres = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_private_acres, __pyx_float_0_0);
      }
      __pyx_L34:;
+1577:         if district_land.has_pesticide:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1577, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_15) {
/* … */
        goto __pyx_L35;
      }
+1578:           for crops in district_land.acreage_by_year:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1578, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1578, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1578, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1578, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_12); __Pyx_INCREF(__pyx_t_1); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1578, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1578, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_13(__pyx_t_2);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1578, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1579:             for private_crops in x.crop_list:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
            __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_17 = 0;
            __pyx_t_18 = NULL;
          } else {
            __pyx_t_17 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1579, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_18 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1579, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          for (;;) {
            if (likely(!__pyx_t_18)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1579, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              } else {
                if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1579, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1579, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              }
            } else {
              __pyx_t_1 = __pyx_t_18(__pyx_t_7);
              if (unlikely(!__pyx_t_1)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1579, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_1);
            }
            __Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_1);
            __pyx_t_1 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1580:               if private_crops == crops:
            __pyx_t_1 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1580, __pyx_L1_error)
            __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1580, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_15) {
/* … */
            }
+1581:                 for future_year in range(0, self.number_years):
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1581, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1581, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_INCREF(__pyx_int_0);
              __Pyx_GIVEREF(__pyx_int_0);
              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_0);
              __Pyx_GIVEREF(__pyx_t_1);
              PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_1);
              __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1581, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
                __pyx_t_11 = __pyx_t_1; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = 0;
                __pyx_t_20 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1581, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_20 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1581, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              for (;;) {
                if (likely(!__pyx_t_20)) {
                  if (likely(PyList_CheckExact(__pyx_t_11))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_11)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_19); __Pyx_INCREF(__pyx_t_1); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1581, __pyx_L1_error)
                    #else
                    __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1581, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_1);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_19); __Pyx_INCREF(__pyx_t_1); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1581, __pyx_L1_error)
                    #else
                    __pyx_t_1 = PySequence_ITEM(__pyx_t_11, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1581, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_1);
                    #endif
                  }
                } else {
                  __pyx_t_1 = __pyx_t_20(__pyx_t_11);
                  if (unlikely(!__pyx_t_1)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 1581, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_1);
                }
                __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_1);
                __pyx_t_1 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1582:                   private_acres[future_year] += x.contract_fractions[land_keys]*district_land.acreage_by_year[crops][future_year]
                __Pyx_INCREF(__pyx_v_future_year);
                __pyx_t_1 = __pyx_v_future_year;
                __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_private_acres, __pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_crops); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_future_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __pyx_t_23 = PyNumber_Multiply(__pyx_t_22, __pyx_t_21); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_23); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                if (unlikely(PyObject_SetItem(__pyx_v_private_acres, __pyx_t_1, __pyx_t_21) < 0)) __PYX_ERR(0, 1582, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1583:                   district_land.private_acreage[private_crops][future_year] += x.contract_fractions[land_keys]*district_land.acreage_by_year[crops][future_year]
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_private_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_INCREF(__pyx_v_future_year);
                __pyx_t_1 = __pyx_v_future_year;
                __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_land_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_crops); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_v_future_year); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                __pyx_t_24 = PyNumber_Multiply(__pyx_t_22, __pyx_t_14); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_23, __pyx_t_24); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_1, __pyx_t_14) < 0)) __PYX_ERR(0, 1583, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+1584:                   if future_year == 0:
                __pyx_t_21 = __Pyx_PyInt_EqObjC(__pyx_v_future_year, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1584, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1584, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                if (__pyx_t_15) {
/* … */
                  goto __pyx_L43;
                }
+1585:                     x.initial_planting[land_keys][private_crops][future_year] = x.contract_fractions[land_keys]*district_land.acreage_by_year[crops][future_year]/float(crop_life)
                  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_crops); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_future_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = PyNumber_Multiply(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_private_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_future_year, __pyx_t_1) < 0)) __PYX_ERR(0, 1585, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1586:                   else:
 1587:                     #x.initial_planting[land_keys][private_crops][future_year] = x.initial_planting[land_keys][private_crops][future_year-1] + max(x.contract_fractions[land_keys]*(district_land.acreage_by_year[crops][future_year] - district_land.acreage_by_year[crops][future_year-1]),0.0)
+1588:                     x.initial_planting[land_keys][private_crops][future_year] = x.contract_fractions[land_keys]*district_land.acreage_by_year[crops][future_year]/float(crop_life)
                /*else*/ {
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_crops); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_future_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = PyNumber_Multiply(__pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_future_year, __pyx_t_21) < 0)) __PYX_ERR(0, 1588, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                }
                __pyx_L43:;
 1589: 
 1590: 
+1591:                 for crop_year in range(0,crop_life):
              __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1591, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_INCREF(__pyx_int_0);
              __Pyx_GIVEREF(__pyx_int_0);
              PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_0);
              __Pyx_INCREF(__pyx_v_crop_life);
              __Pyx_GIVEREF(__pyx_v_crop_life);
              PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_v_crop_life);
              __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_11, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1591, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
                __pyx_t_11 = __pyx_t_21; __Pyx_INCREF(__pyx_t_11); __pyx_t_19 = 0;
                __pyx_t_20 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1591, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_11);
                __pyx_t_20 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1591, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              for (;;) {
                if (likely(!__pyx_t_20)) {
                  if (likely(PyList_CheckExact(__pyx_t_11))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_11)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_21 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_19); __Pyx_INCREF(__pyx_t_21); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1591, __pyx_L1_error)
                    #else
                    __pyx_t_21 = PySequence_ITEM(__pyx_t_11, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1591, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_19); __Pyx_INCREF(__pyx_t_21); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1591, __pyx_L1_error)
                    #else
                    __pyx_t_21 = PySequence_ITEM(__pyx_t_11, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1591, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    #endif
                  }
                } else {
                  __pyx_t_21 = __pyx_t_20(__pyx_t_11);
                  if (unlikely(!__pyx_t_21)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 1591, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_21);
                }
                __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_21);
                __pyx_t_21 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1592:                   if x.has_pesticide[land_keys]:
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1592, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1592, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1592, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (__pyx_t_15) {
/* … */
                  goto __pyx_L46;
                }
+1593:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops][0]
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_21 = __pyx_v_crop_year;
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_private_crops); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_23 = __Pyx_GetItemInt(__pyx_t_24, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __pyx_t_24 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_23); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_21, __pyx_t_24) < 0)) __PYX_ERR(0, 1593, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1594:                   else:
+1595:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops]
                /*else*/ {
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_21 = __pyx_v_crop_year;
                  __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_private_crops); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_24, __pyx_t_23); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_21, __pyx_t_14) < 0)) __PYX_ERR(0, 1595, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                }
                __pyx_L46:;
 1596: 
+1597:             if crops != 'idle':
          __pyx_t_15 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1597, __pyx_L1_error)
          if (__pyx_t_15) {
/* … */
          }
+1598:               for future_year in range(0, self.number_years):
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_11 = PyTuple_New(2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_int_0);
            __Pyx_GIVEREF(__pyx_t_7);
            PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_7);
            __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1598, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
              __pyx_t_11 = __pyx_t_7; __Pyx_INCREF(__pyx_t_11); __pyx_t_17 = 0;
              __pyx_t_18 = NULL;
            } else {
              __pyx_t_17 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1598, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_18 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1598, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            for (;;) {
              if (likely(!__pyx_t_18)) {
                if (likely(PyList_CheckExact(__pyx_t_11))) {
                  if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_11)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1598, __pyx_L1_error)
                  #else
                  __pyx_t_7 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1598, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                } else {
                  if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1598, __pyx_L1_error)
                  #else
                  __pyx_t_7 = PySequence_ITEM(__pyx_t_11, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1598, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                }
              } else {
                __pyx_t_7 = __pyx_t_18(__pyx_t_11);
                if (unlikely(!__pyx_t_7)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 1598, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_7);
              }
              __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_7);
              __pyx_t_7 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1599:                 total_acres[future_year] += district_land.acreage_by_year[crops][future_year]
              __Pyx_INCREF(__pyx_v_future_year);
              __pyx_t_7 = __pyx_v_future_year;
              __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_total_acres, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_crops); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_future_year); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(PyObject_SetItem(__pyx_v_total_acres, __pyx_t_7, __pyx_t_14) < 0)) __PYX_ERR(0, 1599, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1600: 
+1601:         elif district_land.has_pmp:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1601, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1601, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_15) {
/* … */
        goto __pyx_L35;
      }
+1602:           for crops in district_land.pmp_acreage:
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1602, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
          __pyx_t_11 = __pyx_t_2; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1602, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1602, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_11))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1602, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1602, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1602, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1602, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            }
          } else {
            __pyx_t_2 = __pyx_t_13(__pyx_t_11);
            if (unlikely(!__pyx_t_2)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1602, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_2);
          __pyx_t_2 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1603:             for private_crops in x.crop_list:
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
            __pyx_t_7 = __pyx_t_2; __Pyx_INCREF(__pyx_t_7); __pyx_t_17 = 0;
            __pyx_t_18 = NULL;
          } else {
            __pyx_t_17 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_18 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1603, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          for (;;) {
            if (likely(!__pyx_t_18)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1603, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              } else {
                if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_17); __Pyx_INCREF(__pyx_t_2); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1603, __pyx_L1_error)
                #else
                __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1603, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                #endif
              }
            } else {
              __pyx_t_2 = __pyx_t_18(__pyx_t_7);
              if (unlikely(!__pyx_t_2)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1603, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_2);
            }
            __Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_2);
            __pyx_t_2 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1604:               if private_crops == crops:
            __pyx_t_2 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1604, __pyx_L1_error)
            __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1604, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (__pyx_t_15) {
/* … */
            }
+1605:                 private_acres += x.contract_fractions[land_keys]*district_land.pmp_acreage[crops]
              __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __pyx_t_2 = PyNumber_Multiply(__pyx_t_14, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_v_private_acres, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF_SET(__pyx_v_private_acres, __pyx_t_21);
              __pyx_t_21 = 0;
+1606:                 district_land.private_acreage[private_crops] += x.contract_fractions[land_keys]*district_land.pmp_acreage[crops]
              __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_INCREF(__pyx_v_private_crops);
              __pyx_t_2 = __pyx_v_private_crops;
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_crops); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = PyNumber_Multiply(__pyx_t_23, __pyx_t_24); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __pyx_t_24 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_2, __pyx_t_24) < 0)) __PYX_ERR(0, 1606, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+1607:                 if x.has_pesticide[land_keys]:
              __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1607, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (__pyx_t_15) {
/* … */
                goto __pyx_L55;
              }
+1608:                   for future_year in range(0, self.number_years):
                __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1608, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1608, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_INCREF(__pyx_int_0);
                __Pyx_GIVEREF(__pyx_int_0);
                PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_int_0);
                __Pyx_GIVEREF(__pyx_t_2);
                PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_t_2);
                __pyx_t_2 = 0;
                __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1608, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
                  __pyx_t_21 = __pyx_t_2; __Pyx_INCREF(__pyx_t_21); __pyx_t_19 = 0;
                  __pyx_t_20 = NULL;
                } else {
                  __pyx_t_19 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1608, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_20 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1608, __pyx_L1_error)
                }
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                for (;;) {
                  if (likely(!__pyx_t_20)) {
                    if (likely(PyList_CheckExact(__pyx_t_21))) {
                      if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_21)) break;
                      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1608, __pyx_L1_error)
                      #else
                      __pyx_t_2 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1608, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_2);
                      #endif
                    } else {
                      if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
                      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1608, __pyx_L1_error)
                      #else
                      __pyx_t_2 = PySequence_ITEM(__pyx_t_21, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1608, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_2);
                      #endif
                    }
                  } else {
                    __pyx_t_2 = __pyx_t_20(__pyx_t_21);
                    if (unlikely(!__pyx_t_2)) {
                      PyObject* exc_type = PyErr_Occurred();
                      if (exc_type) {
                        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                        else __PYX_ERR(0, 1608, __pyx_L1_error)
                      }
                      break;
                    }
                    __Pyx_GOTREF(__pyx_t_2);
                  }
                  __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_2);
                  __pyx_t_2 = 0;
/* … */
                }
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+1609:                     x.initial_planting[land_keys][private_crops][future_year] = x.contract_fractions[land_keys]*district_land.pmp_acreage[crops]/float(crop_life)
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = PyNumber_Multiply(__pyx_t_24, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_24 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_future_year, __pyx_t_24) < 0)) __PYX_ERR(0, 1609, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
 1610:                 else:
+1611:                   x.initial_planting[land_keys][private_crops] = x.contract_fractions[land_keys]*district_land.pmp_acreage[crops]/float(crop_life)
              /*else*/ {
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_21 = PyNumber_Multiply(__pyx_t_24, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_1 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_24 = __Pyx_PyNumber_Divide(__pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_private_crops, __pyx_t_24) < 0)) __PYX_ERR(0, 1611, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              }
              __pyx_L55:;
 1612: 
+1613:                 for crop_year in range(0,crop_life):
              __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1613, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __Pyx_INCREF(__pyx_int_0);
              __Pyx_GIVEREF(__pyx_int_0);
              PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_int_0);
              __Pyx_INCREF(__pyx_v_crop_life);
              __Pyx_GIVEREF(__pyx_v_crop_life);
              PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_v_crop_life);
              __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_24, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1613, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
                __pyx_t_24 = __pyx_t_21; __Pyx_INCREF(__pyx_t_24); __pyx_t_19 = 0;
                __pyx_t_20 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1613, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_20 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1613, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              for (;;) {
                if (likely(!__pyx_t_20)) {
                  if (likely(PyList_CheckExact(__pyx_t_24))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_24)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_21 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_19); __Pyx_INCREF(__pyx_t_21); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1613, __pyx_L1_error)
                    #else
                    __pyx_t_21 = PySequence_ITEM(__pyx_t_24, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1613, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_19); __Pyx_INCREF(__pyx_t_21); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1613, __pyx_L1_error)
                    #else
                    __pyx_t_21 = PySequence_ITEM(__pyx_t_24, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1613, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_21);
                    #endif
                  }
                } else {
                  __pyx_t_21 = __pyx_t_20(__pyx_t_24);
                  if (unlikely(!__pyx_t_21)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 1613, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_21);
                }
                __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_21);
                __pyx_t_21 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+1614:                   if x.has_pesticide[land_keys]:
                __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1614, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_21);
                __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1614, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1614, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (__pyx_t_15) {
/* … */
                  goto __pyx_L60;
                }
+1615:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops][0]
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_21 = __pyx_v_crop_year;
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_private_crops); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_23 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_23); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_21, __pyx_t_14) < 0)) __PYX_ERR(0, 1615, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1616:                   else:
+1617:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops]
                /*else*/ {
                  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_private_crops); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_1);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_21 = __pyx_v_crop_year;
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_private_crops); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_23); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_21, __pyx_t_2) < 0)) __PYX_ERR(0, 1617, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                }
                __pyx_L60:;
 1618: 
+1619:             if crops != 'idle':
          __pyx_t_15 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1619, __pyx_L1_error)
          if (__pyx_t_15) {
/* … */
          }
+1620:               total_acres += district_land.pmp_acreage[crops]
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1620, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_crops); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1620, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_acres, __pyx_t_24); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1620, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_DECREF_SET(__pyx_v_total_acres, __pyx_t_7);
            __pyx_t_7 = 0;
 1621: 
 1622: 
 1623:         else:
+1624:           for i,crops in enumerate(district_land.crop_list):
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __pyx_t_11 = __pyx_int_0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1624, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_24 = __pyx_t_7; __Pyx_INCREF(__pyx_t_24); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1624, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_13 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1624, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_24))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_24)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1624, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1624, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1624, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1624, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_13(__pyx_t_24);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1624, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_crops, __pyx_t_7);
          __pyx_t_7 = 0;
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_XDECREF_SET(__pyx_v_i, __pyx_t_11);
          __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_11, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1624, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_11);
          __pyx_t_11 = __pyx_t_7;
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __pyx_L35:;
+1625:             for private_crops in x.crop_list:
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1625, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
            __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); __pyx_t_17 = 0;
            __pyx_t_18 = NULL;
          } else {
            __pyx_t_17 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1625, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_18 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1625, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          for (;;) {
            if (likely(!__pyx_t_18)) {
              if (likely(PyList_CheckExact(__pyx_t_1))) {
                if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_1)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1625, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1625, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              } else {
                if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_17); __Pyx_INCREF(__pyx_t_7); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 1625, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1625, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              }
            } else {
              __pyx_t_7 = __pyx_t_18(__pyx_t_1);
              if (unlikely(!__pyx_t_7)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 1625, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_7);
            }
            __Pyx_XDECREF_SET(__pyx_v_private_crops, __pyx_t_7);
            __pyx_t_7 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1626:               if private_crops == crops:
            __pyx_t_7 = PyObject_RichCompare(__pyx_v_private_crops, __pyx_v_crops, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1626, __pyx_L1_error)
            __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1626, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (__pyx_t_15) {
/* … */
            }
+1627:                 private_acres += x.contract_fractions[land_keys]*district_land.acreage['BN'][i]
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_BN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __pyx_t_2 = PyNumber_Multiply(__pyx_t_21, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_private_acres, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1627, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF_SET(__pyx_v_private_acres, __pyx_t_7);
              __pyx_t_7 = 0;
+1628:                 district_land.private_acreage[private_crops] += x.contract_fractions[land_keys]*district_land.acreage['BN'][i]
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_INCREF(__pyx_v_private_crops);
              __pyx_t_2 = __pyx_v_private_crops;
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_BN); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_i); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __pyx_t_22 = PyNumber_Multiply(__pyx_t_14, __pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_2, __pyx_t_23) < 0)) __PYX_ERR(0, 1628, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1629:                 if x.has_pesticide[land_keys]:
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1629, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1629, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1629, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              if (__pyx_t_15) {
/* … */
                goto __pyx_L67;
              }
+1630:                   for future_year in range(0, self.number_years):
                __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __pyx_t_7 = PyTuple_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1630, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_INCREF(__pyx_int_0);
                __Pyx_GIVEREF(__pyx_int_0);
                PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_int_0);
                __Pyx_GIVEREF(__pyx_t_2);
                PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_2);
                __pyx_t_2 = 0;
                __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
                  __pyx_t_7 = __pyx_t_2; __Pyx_INCREF(__pyx_t_7); __pyx_t_19 = 0;
                  __pyx_t_20 = NULL;
                } else {
                  __pyx_t_19 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1630, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __pyx_t_20 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1630, __pyx_L1_error)
                }
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                for (;;) {
                  if (likely(!__pyx_t_20)) {
                    if (likely(PyList_CheckExact(__pyx_t_7))) {
                      if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_7)) break;
                      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                      __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1630, __pyx_L1_error)
                      #else
                      __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_2);
                      #endif
                    } else {
                      if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1630, __pyx_L1_error)
                      #else
                      __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1630, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_2);
                      #endif
                    }
                  } else {
                    __pyx_t_2 = __pyx_t_20(__pyx_t_7);
                    if (unlikely(!__pyx_t_2)) {
                      PyObject* exc_type = PyErr_Occurred();
                      if (exc_type) {
                        if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                        else __PYX_ERR(0, 1630, __pyx_L1_error)
                      }
                      break;
                    }
                    __Pyx_GOTREF(__pyx_t_2);
                  }
                  __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_2);
                  __pyx_t_2 = 0;
/* … */
                }
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+1631:                     x.initial_planting[land_keys][private_crops][future_year] = x.contract_fractions[land_keys]*district_land.acreage['BN'][i]/float(crop_life)
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_BN); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_i); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_22 = PyNumber_Multiply(__pyx_t_23, __pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_23 = __Pyx_PyNumber_Divide(__pyx_t_22, __pyx_t_2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_private_crops); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_future_year, __pyx_t_23) < 0)) __PYX_ERR(0, 1631, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 1632:                 else:
+1633:                   x.initial_planting[land_keys][private_crops] = x.contract_fractions[land_keys]*district_land.acreage['BN'][i]/float(crop_life)
              /*else*/ {
                __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_fractions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_BN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_i); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __pyx_t_2 = PyNumber_Multiply(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_t_7 = __Pyx_PyNumber_Float(__pyx_v_crop_life); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_23 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_private_crops, __pyx_t_23) < 0)) __PYX_ERR(0, 1633, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              }
              __pyx_L67:;
 1634: 
+1635:                 for crop_year in range(0,crop_life):
              __pyx_t_23 = PyTuple_New(2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1635, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __Pyx_INCREF(__pyx_int_0);
              __Pyx_GIVEREF(__pyx_int_0);
              PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_int_0);
              __Pyx_INCREF(__pyx_v_crop_life);
              __Pyx_GIVEREF(__pyx_v_crop_life);
              PyTuple_SET_ITEM(__pyx_t_23, 1, __pyx_v_crop_life);
              __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_23, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
                __pyx_t_23 = __pyx_t_2; __Pyx_INCREF(__pyx_t_23); __pyx_t_19 = 0;
                __pyx_t_20 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1635, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_20 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 1635, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              for (;;) {
                if (likely(!__pyx_t_20)) {
                  if (likely(PyList_CheckExact(__pyx_t_23))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_23)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1635, __pyx_L1_error)
                    #else
                    __pyx_t_2 = PySequence_ITEM(__pyx_t_23, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_19); __Pyx_INCREF(__pyx_t_2); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 1635, __pyx_L1_error)
                    #else
                    __pyx_t_2 = PySequence_ITEM(__pyx_t_23, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1635, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_2);
                    #endif
                  }
                } else {
                  __pyx_t_2 = __pyx_t_20(__pyx_t_23);
                  if (unlikely(!__pyx_t_2)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 1635, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_2);
                }
                __Pyx_XDECREF_SET(__pyx_v_crop_year, __pyx_t_2);
                __pyx_t_2 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+1636:                   if x.has_pesticide[land_keys]:
                __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1636, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_2);
                __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_land_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1636, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1636, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                if (__pyx_t_15) {
/* … */
                  goto __pyx_L72;
                }
+1637:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops][0]
                  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_private_crops); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_2 = __pyx_v_crop_year;
                  __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_land_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_private_crops); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_21, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_14); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_2, __pyx_t_21) < 0)) __PYX_ERR(0, 1637, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 1638:                   else:
+1639:                     x.acreage[land_keys][private_crops][crop_year] += x.initial_planting[land_keys][private_crops]
                /*else*/ {
                  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_land_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_2);
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_private_crops); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_INCREF(__pyx_v_crop_year);
                  __pyx_t_2 = __pyx_v_crop_year;
                  __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_21);
                  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_planting); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_land_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_private_crops); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_14); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_2, __pyx_t_22) < 0)) __PYX_ERR(0, 1639, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                }
                __pyx_L72:;
 1640: 
 1641: 
+1642:             if crops != 'idle':
          __pyx_t_15 = (__Pyx_PyUnicode_Equals(__pyx_v_crops, __pyx_n_u_idle, Py_NE)); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1642, __pyx_L1_error)
          if (__pyx_t_15) {
/* … */
          }
+1643:               total_acres += district_land.acreage['BN'][i]
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1643, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_BN); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1643, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_i); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1643, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_total_acres, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1643, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF_SET(__pyx_v_total_acres, __pyx_t_23);
            __pyx_t_23 = 0;
 1644: 
+1645:         if district_land.has_pesticide:
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_has_pesticide); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1645, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_15 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1645, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_15) {
/* … */
        goto __pyx_L74;
      }
+1646:           for future_year in range(0, self.number_years):
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1646, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1646, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_11);
        __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_24, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1646, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
          __pyx_t_24 = __pyx_t_11; __Pyx_INCREF(__pyx_t_24); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1646, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_13 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1646, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_24))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_24)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1646, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1646, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1646, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1646, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            }
          } else {
            __pyx_t_11 = __pyx_t_13(__pyx_t_24);
            if (unlikely(!__pyx_t_11)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1646, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_11);
          __pyx_t_11 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+1647:             x.private_fraction[land_keys][future_year] += private_acres[future_year]/total_acres[future_year]
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_land_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_INCREF(__pyx_v_future_year);
          __pyx_t_11 = __pyx_v_future_year;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_private_acres, __pyx_v_future_year); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_total_acres, __pyx_v_future_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_22 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_11, __pyx_t_2) < 0)) __PYX_ERR(0, 1647, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+1648:             district_land.private_fraction[future_year] += private_acres[future_year]/total_acres[future_year]
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_INCREF(__pyx_v_future_year);
          __pyx_t_11 = __pyx_v_future_year;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_private_acres, __pyx_v_future_year); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_total_acres, __pyx_v_future_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_22, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_11, __pyx_t_1) < 0)) __PYX_ERR(0, 1648, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 1649:             #if district_land.private_fraction[future_year] > 1.0:
 1650:               #print("You have overallocated private lands in " + district_land.key)
 1651:         else:
+1652:           for future_year in range(0, self.number_years):
      /*else*/ {
        __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1652, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_23 = PyTuple_New(2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1652, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_24);
        PyTuple_SET_ITEM(__pyx_t_23, 1, __pyx_t_24);
        __pyx_t_24 = 0;
        __pyx_t_24 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_23, NULL); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1652, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        if (likely(PyList_CheckExact(__pyx_t_24)) || PyTuple_CheckExact(__pyx_t_24)) {
          __pyx_t_23 = __pyx_t_24; __Pyx_INCREF(__pyx_t_23); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_24); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1652, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_13 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1652, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_23))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_24 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_12); __Pyx_INCREF(__pyx_t_24); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1652, __pyx_L1_error)
              #else
              __pyx_t_24 = PySequence_ITEM(__pyx_t_23, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1652, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_24 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_12); __Pyx_INCREF(__pyx_t_24); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1652, __pyx_L1_error)
              #else
              __pyx_t_24 = PySequence_ITEM(__pyx_t_23, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1652, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              #endif
            }
          } else {
            __pyx_t_24 = __pyx_t_13(__pyx_t_23);
            if (unlikely(!__pyx_t_24)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1652, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_24);
          }
          __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_24);
          __pyx_t_24 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+1653:             x.private_fraction[land_keys][future_year] += private_acres/total_acres
          __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_v_land_keys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_INCREF(__pyx_v_future_year);
          __pyx_t_24 = __pyx_v_future_year;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_24); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_v_private_acres, __pyx_v_total_acres); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_24, __pyx_t_2) < 0)) __PYX_ERR(0, 1653, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 1654: 
+1655:           district_land.private_fraction[0] += private_acres/total_acres
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_land, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1655, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_12 = 0;
        __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_23, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1655, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_24 = __Pyx_PyNumber_Divide(__pyx_v_private_acres, __pyx_v_total_acres); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1655, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1655, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_23, __pyx_t_12, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1655, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __pyx_L74:;
 1656:           #if district_land.private_fraction > 1.0:
 1657:             #print("You have overallocated private lands in " + district_land.key)
 1658: 
 1659: 
+1660:     for x in self.city_list:
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1660, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_10 = __pyx_t_6; __Pyx_INCREF(__pyx_t_10); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1660, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_4 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1660, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_10))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_3); __Pyx_INCREF(__pyx_t_6); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1660, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_10, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1660, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_3); __Pyx_INCREF(__pyx_t_6); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1660, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_10, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1660, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_4(__pyx_t_10);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1660, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+1661:       x.contract_fraction = {}
    __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1661, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_fraction, __pyx_t_6) < 0) __PYX_ERR(0, 1661, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1662:       x.private_fraction = {}
    __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1662, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction, __pyx_t_6) < 0) __PYX_ERR(0, 1662, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1663:       x.contract_list = []
    __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_contract_list, __pyx_t_6) < 0) __PYX_ERR(0, 1663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1664:       for pump_keys in x.district_list:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_23 = __pyx_t_6; __Pyx_INCREF(__pyx_t_23); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 1664, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_9 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1664, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_23))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1664, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_23, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1664, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_8); __Pyx_INCREF(__pyx_t_6); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 1664, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_23, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1664, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_9(__pyx_t_23);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1664, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_pump_keys, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+1665:         pump = self.district_keys[pump_keys]
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1665, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_pump_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1665, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_pump, __pyx_t_2);
      __pyx_t_2 = 0;
+1666:         x.private_fraction[pump_keys] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_24))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_24);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_24, function);
        }
      }
      __pyx_t_2 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_24, __pyx_t_11, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_24, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      if (unlikely(PyObject_SetItem(__pyx_t_24, __pyx_v_pump_keys, __pyx_t_2) < 0)) __PYX_ERR(0, 1666, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1667:         for future_years in range(0, self.number_years):
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_24 = PyTuple_New(2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_24, 1, __pyx_t_2);
      __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_24, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_24 = __pyx_t_2; __Pyx_INCREF(__pyx_t_24); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1667, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_13 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1667, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_24))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_24)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1667, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1667, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_2); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1667, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1667, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_13(__pyx_t_24);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1667, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_future_years, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+1668:           x.private_fraction[pump_keys][future_years] = x.pump_out_fraction[pump_keys]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_pump_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_pump_keys); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1668, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_future_years, __pyx_t_6) < 0)) __PYX_ERR(0, 1668, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1669:         pump.private_fraction[0] += x.pump_out_fraction[pump_keys]
      __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_pump, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      __pyx_t_12 = 0;
      __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_24, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_pump_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_24, __pyx_t_12, __pyx_t_11, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1669, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+1670:         for contract in pump.contract_list:
      __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_pump, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1670, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      if (likely(PyList_CheckExact(__pyx_t_24)) || PyTuple_CheckExact(__pyx_t_24)) {
        __pyx_t_11 = __pyx_t_24; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
        __pyx_t_13 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_24); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1670, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1670, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      for (;;) {
        if (likely(!__pyx_t_13)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_24 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_24); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1670, __pyx_L1_error)
            #else
            __pyx_t_24 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1670, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_24 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_24); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1670, __pyx_L1_error)
            #else
            __pyx_t_24 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1670, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            #endif
          }
        } else {
          __pyx_t_24 = __pyx_t_13(__pyx_t_11);
          if (unlikely(!__pyx_t_24)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1670, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_24);
        }
        __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_24);
        __pyx_t_24 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+1671:           if contract not in x.contract_list:
        __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1671, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_15 = (__Pyx_PySequence_ContainsTF(__pyx_v_contract, __pyx_t_24, Py_NE)); if (unlikely(__pyx_t_15 < 0)) __PYX_ERR(0, 1671, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_5 = (__pyx_t_15 != 0);
        if (__pyx_t_5) {
/* … */
        }
+1672:             x.contract_list.append(contract)
          __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 1672, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_16 = __Pyx_PyObject_Append(__pyx_t_24, __pyx_v_contract); if (unlikely(__pyx_t_16 == ((int)-1))) __PYX_ERR(0, 1672, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
 1673: 
+1674:   def determine_recharge_recovery_risk(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_39determine_recharge_recovery_risk(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_39determine_recharge_recovery_risk = {"determine_recharge_recovery_risk", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_39determine_recharge_recovery_risk, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_39determine_recharge_recovery_risk(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("determine_recharge_recovery_risk (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_38determine_recharge_recovery_risk(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_38determine_recharge_recovery_risk(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_contract_estimates = NULL;
  PyObject *__pyx_v_delivery_values = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_total_available = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_contracts = NULL;
  PyObject *__pyx_v_contract_object = NULL;
  PyObject *__pyx_v_future_year = NULL;
  PyObject *__pyx_v_cumulative_balance = NULL;
  double __pyx_v_cumulative_years;
  PyObject *__pyx_v_total_delivery_recalfews_src = NULL;
  Py_ssize_t __pyx_v_hist_year;
  PyObject *__pyx_v_private_deliveries = NULL;
  PyObject *__pyx_v_annual_balance = NULL;
  CYTHON_UNUSED PyObject *__pyx_8genexpr8__pyx_v__ = NULL;
  CYTHON_UNUSED Py_ssize_t __pyx_8genexpr9__pyx_v__;
  CYTHON_UNUSED Py_ssize_t __pyx_9genexpr10__pyx_v__;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__40)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("determine_recharge_recovery_risk", 0);
  __Pyx_TraceCall("determine_recharge_recovery_risk", __pyx_f[0], 1674, 0, __PYX_ERR(0, 1674, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.determine_recharge_recovery_risk", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_contract_estimates);
  __Pyx_XDECREF(__pyx_v_delivery_values);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_total_available);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_contracts);
  __Pyx_XDECREF(__pyx_v_contract_object);
  __Pyx_XDECREF(__pyx_v_future_year);
  __Pyx_XDECREF(__pyx_v_cumulative_balance);
  __Pyx_XDECREF(__pyx_v_total_delivery_recalfews_src);
  __Pyx_XDECREF(__pyx_v_private_deliveries);
  __Pyx_XDECREF(__pyx_v_annual_balance);
  __Pyx_XDECREF(__pyx_8genexpr8__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__108 = PyTuple_Pack(20, __pyx_n_s_self, __pyx_n_s_contract_estimates, __pyx_n_s_delivery_values, __pyx_n_s_y, __pyx_n_s_total_available, __pyx_n_s_x, __pyx_n_s_district, __pyx_n_s_district_object, __pyx_n_s_contracts, __pyx_n_s_contract_object, __pyx_n_s_future_year, __pyx_n_s_cumulative_balance, __pyx_n_s_cumulative_years, __pyx_n_s_total_delivery_recalfews_src, __pyx_n_s_hist_year, __pyx_n_s_private_deliveries, __pyx_n_s_annual_balance, __pyx_n_s__12, __pyx_n_s__12, __pyx_n_s__12); if (unlikely(!__pyx_tuple__108)) __PYX_ERR(0, 1674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__108);
  __Pyx_GIVEREF(__pyx_tuple__108);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_39determine_recharge_recovery_risk, 0, __pyx_n_s_Model_determine_recharge_recover, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__40)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1674, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_determine_recharge_recovery_risk, __pyx_t_2) < 0) __PYX_ERR(0, 1674, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__40 = (PyObject*)__Pyx_PyCode_New(1, 0, 20, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__108, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_determine_recharge_recovery_risk, 1674, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__40)) __PYX_ERR(0, 1674, __pyx_L1_error)
+1675:     contract_estimates = pd.read_csv('calfews_src/data/input/contract_risks.csv')
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_kp_u_calfews_src_data_input_contract) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_kp_u_calfews_src_data_input_contract);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_contract_estimates = __pyx_t_1;
  __pyx_t_1 = 0;
+1676:     delivery_values = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1676, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_delivery_values = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1677:     for y in self.contract_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1677, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1677, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1677, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1677, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1678:       total_available = contract_estimates[y.key + '_contract'] + contract_estimates[y.key + '_flood'] + contract_estimates[y.key + '_carryover'] + contract_estimates[y.key + '_turnback']
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_n_u_contract_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_contract_estimates, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyNumber_Add(__pyx_t_2, __pyx_n_u_flood); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_estimates, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_n_u_carryover_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_estimates, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyNumber_Add(__pyx_t_2, __pyx_n_u_turnback); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_contract_estimates, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_Add(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1678, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_total_available, __pyx_t_6);
    __pyx_t_6 = 0;
+1679:       delivery_values[y.key] = total_available
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1679, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (unlikely(PyDict_SetItem(__pyx_v_delivery_values, __pyx_t_6, __pyx_v_total_available) < 0)) __PYX_ERR(0, 1679, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1680:     for x in self.private_list:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_6 = __pyx_t_3; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1680, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1680, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_6))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1680, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1680, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 1680, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1680, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_5(__pyx_t_6);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1680, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1681:       x.target_annual_demand = [0. for _ in range(self.number_years)]
    { /* enter inner scope */
      __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1681, __pyx_L9_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1681, __pyx_L9_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L9_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1681, __pyx_L9_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1681, __pyx_L9_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1681, __pyx_L9_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1681, __pyx_L9_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1681, __pyx_L9_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_8(__pyx_t_2);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1681, __pyx_L9_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_8genexpr8__pyx_v__, __pyx_t_1);
        __pyx_t_1 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_))) __PYX_ERR(0, 1681, __pyx_L9_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF(__pyx_8genexpr8__pyx_v__); __pyx_8genexpr8__pyx_v__ = 0;
      goto __pyx_L12_exit_scope;
      __pyx_L9_error:;
      __Pyx_XDECREF(__pyx_8genexpr8__pyx_v__); __pyx_8genexpr8__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L12_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_target_annual_demand, __pyx_t_3) < 0) __PYX_ERR(0, 1681, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1682:       for district in x.district_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1682, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1682, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1682, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 1682, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_2);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1682, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1683:           district_object = self.district_keys[district]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1683, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_district); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1683, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_1);
      __pyx_t_1 = 0;
+1684:           for contracts in district_object.contract_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1684, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1684, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1684, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1684, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1684, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_10(__pyx_t_3);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1684, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_contracts, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1685:             contract_object = self.contract_keys[contracts]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1685, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_contracts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1685, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_11);
        __pyx_t_11 = 0;
+1686:             for future_year in range(0, self.number_years):
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1686, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1686, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_11);
        __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1686, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
          __pyx_t_1 = __pyx_t_11; __Pyx_INCREF(__pyx_t_1); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1686, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_13 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1686, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1686, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1686, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 1686, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_1, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1686, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            }
          } else {
            __pyx_t_11 = __pyx_t_13(__pyx_t_1);
            if (unlikely(!__pyx_t_11)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1686, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_XDECREF_SET(__pyx_v_future_year, __pyx_t_11);
          __pyx_t_11 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1687:               x.target_annual_demand[future_year] += np.mean(delivery_values[contract_object.key])*district_object.project_contract[contract_object.name]*x.private_fraction[district][future_year]
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_target_annual_demand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_INCREF(__pyx_v_future_year);
          __pyx_t_14 = __pyx_v_future_year;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_mean); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) {
            __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_18);
            if (likely(__pyx_t_17)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_17);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_18, function);
            }
          }
          __pyx_t_16 = (__pyx_t_17) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_17, __pyx_t_19) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_19);
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_name); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = PyNumber_Multiply(__pyx_t_16, __pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_district); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_future_year); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = PyNumber_Multiply(__pyx_t_19, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_14, __pyx_t_17) < 0)) __PYX_ERR(0, 1687, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 1688: 
+1689:       x.delivery_risk = [0.0 for _ in range(len(total_available))]
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1689, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1689, __pyx_L1_error) }
      __pyx_t_7 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1689, __pyx_L1_error)
      __pyx_t_9 = __pyx_t_7;
      for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_9; __pyx_t_12+=1) {
        __pyx_8genexpr9__pyx_v__ = __pyx_t_12;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1689, __pyx_L1_error)
      }
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_risk, __pyx_t_2) < 0) __PYX_ERR(0, 1689, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1690:       x.delivery_risk_rate = [0.0 for _ in range(len(total_available))]
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1690, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1690, __pyx_L1_error) }
      __pyx_t_7 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1690, __pyx_L1_error)
      __pyx_t_9 = __pyx_t_7;
      for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_9; __pyx_t_12+=1) {
        __pyx_9genexpr10__pyx_v__ = __pyx_t_12;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1690, __pyx_L1_error)
      }
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_risk_rate, __pyx_t_2) < 0) __PYX_ERR(0, 1690, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1691:       cumulative_balance = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_cumulative_balance, __pyx_float_0_0);
+1692:       cumulative_years = 0.0
    __pyx_v_cumulative_years = 0.0;
+1693:       total_delivery_recalfews_src = np.zeros(len(total_available))
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1693, __pyx_L1_error) }
    __pyx_t_7 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1693, __pyx_L1_error)
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_11)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_11);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_2 = (__pyx_t_11) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_11, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_total_delivery_recalfews_src, __pyx_t_2);
    __pyx_t_2 = 0;
+1694:       for hist_year in range(0, len(total_available)):
    if (unlikely(!__pyx_v_total_available)) { __Pyx_RaiseUnboundLocalError("total_available"); __PYX_ERR(0, 1694, __pyx_L1_error) }
    __pyx_t_7 = PyObject_Length(__pyx_v_total_available); if (unlikely(__pyx_t_7 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1694, __pyx_L1_error)
    __pyx_t_9 = __pyx_t_7;
    for (__pyx_t_12 = 0; __pyx_t_12 < __pyx_t_9; __pyx_t_12+=1) {
      __pyx_v_hist_year = __pyx_t_12;
+1695:         private_deliveries = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_private_deliveries, __pyx_float_0_0);
+1696:         for district in x.district_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1696, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_20 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_20 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1696, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1696, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_20); __Pyx_INCREF(__pyx_t_2); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 1696, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1696, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_20); __Pyx_INCREF(__pyx_t_2); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 1696, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1696, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_8(__pyx_t_1);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1696, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1697:           district_object = self.district_keys[district]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1697, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1697, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_3);
        __pyx_t_3 = 0;
+1698:           for contracts in district_object.contract_list:
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1698, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
          __pyx_t_2 = __pyx_t_3; __Pyx_INCREF(__pyx_t_2); __pyx_t_21 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_21 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1698, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1698, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_21 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_21); __Pyx_INCREF(__pyx_t_3); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 1698, __pyx_L1_error)
              #else
              __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1698, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
            } else {
              if (__pyx_t_21 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_21); __Pyx_INCREF(__pyx_t_3); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 1698, __pyx_L1_error)
              #else
              __pyx_t_3 = PySequence_ITEM(__pyx_t_2, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1698, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              #endif
            }
          } else {
            __pyx_t_3 = __pyx_t_10(__pyx_t_2);
            if (unlikely(!__pyx_t_3)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1698, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_3);
          }
          __Pyx_XDECREF_SET(__pyx_v_contracts, __pyx_t_3);
          __pyx_t_3 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1699:             contract_object = self.contract_keys[contracts]
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1699, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_contracts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1699, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_XDECREF_SET(__pyx_v_contract_object, __pyx_t_11);
          __pyx_t_11 = 0;
+1700:             if contract_object.type == 'contract':
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_type); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1700, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_22 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1700, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_22) {
/* … */
            goto __pyx_L29;
          }
+1701:               private_deliveries += delivery_values[contract_object.key][hist_year]*district_object.project_contract[contract_object.name]*x.private_fraction[district][0]
            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_hist_year, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_Multiply(__pyx_t_11, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_district); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = PyNumber_Multiply(__pyx_t_14, __pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_private_deliveries, __pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1701, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF_SET(__pyx_v_private_deliveries, __pyx_t_17);
            __pyx_t_17 = 0;
 1702:             else:
+1703:               private_deliveries += delivery_values[contract_object.key][hist_year]*district_object.rights[contract_object.name]['capacity']*x.private_fraction[district][0]
          /*else*/ {
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_delivery_values, __pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_11, __pyx_v_hist_year, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_object, __pyx_n_s_name); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_capacity); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyNumber_Multiply(__pyx_t_17, __pyx_t_14); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_district); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_17, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = PyNumber_Multiply(__pyx_t_3, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_v_private_deliveries, __pyx_t_17); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1703, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF_SET(__pyx_v_private_deliveries, __pyx_t_14);
            __pyx_t_14 = 0;
          }
          __pyx_L29:;
 1704: 
+1705:         total_delivery_recalfews_src[hist_year] = private_deliveries
      if (unlikely(__Pyx_SetItemInt(__pyx_v_total_delivery_recalfews_src, __pyx_v_hist_year, __pyx_v_private_deliveries, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1705, __pyx_L1_error)
+1706:         annual_balance = private_deliveries - x.target_annual_demand[0]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_target_annual_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_private_deliveries, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_annual_balance, __pyx_t_1);
      __pyx_t_1 = 0;
+1707:         cumulative_balance += annual_balance
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_cumulative_balance, __pyx_v_annual_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1707, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_cumulative_balance, __pyx_t_1);
      __pyx_t_1 = 0;
+1708:         cumulative_years += 1.0
      __pyx_v_cumulative_years = (__pyx_v_cumulative_years + 1.0);
+1709:         if cumulative_balance > 0.0:
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_cumulative_balance, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1709, __pyx_L1_error)
      __pyx_t_22 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_22 < 0)) __PYX_ERR(0, 1709, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_22) {
/* … */
      }
+1710:           cumulative_balance = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_DECREF_SET(__pyx_v_cumulative_balance, __pyx_float_0_0);
+1711:           cumulative_years = 0.0
        __pyx_v_cumulative_years = 0.0;
+1712:         x.delivery_risk[hist_year] = cumulative_balance
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_risk); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1712, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_hist_year, __pyx_v_cumulative_balance, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1712, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1713:         x.delivery_risk_rate[hist_year] = cumulative_years
      __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cumulative_years); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1713, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_risk_rate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1713, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_hist_year, __pyx_t_1, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 1713, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
 1714:       # df = pd.DataFrame()
 1715:       # df['delivery_risk'] = pd.Series(x.delivery_risk)
 1716:       # df['deliveries'] = pd.Series(total_delivery_recalfews_src)
 1717:       # df['average_demand'] = pd.Series(np.ones(len(x.delivery_risk))*x.target_annual_demand[0])
 1718:       # df.to_csv(self.results_folder + '/delivery_risk_' + x.key + '.csv')
 1719: 
+1720:   def init_tot_recovery(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_41init_tot_recovery(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_41init_tot_recovery = {"init_tot_recovery", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_41init_tot_recovery, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_41init_tot_recovery(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_tot_recovery (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_40init_tot_recovery(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_40init_tot_recovery(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_member = NULL;
  PyObject *__pyx_v_num_districts = NULL;
  PyObject *__pyx_v_irr_district = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__41)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("init_tot_recovery", 0);
  __Pyx_TraceCall("init_tot_recovery", __pyx_f[0], 1720, 0, __PYX_ERR(0, 1720, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.init_tot_recovery", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_member);
  __Pyx_XDECREF(__pyx_v_num_districts);
  __Pyx_XDECREF(__pyx_v_irr_district);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__109 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_x, __pyx_n_s_w, __pyx_n_s_member, __pyx_n_s_num_districts, __pyx_n_s_irr_district); if (unlikely(!__pyx_tuple__109)) __PYX_ERR(0, 1720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__109);
  __Pyx_GIVEREF(__pyx_tuple__109);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_41init_tot_recovery, 0, __pyx_n_s_Model_init_tot_recovery, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1720, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_init_tot_recovery, __pyx_t_2) < 0) __PYX_ERR(0, 1720, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__109, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_init_tot_recovery, 1720, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 1720, __pyx_L1_error)
 1721:     #########################################################################################
 1722:     ###this function finds the total GW recovery
 1723:     ###capacity available to all district objects
 1724:     #########################################################################################
 1725: 
+1726:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1726, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1726, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1726, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1726, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1727:       x.max_recovery = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_max_recovery, __pyx_float_0_0) < 0) __PYX_ERR(0, 1727, __pyx_L1_error)
+1728:     for x in self.private_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1728, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1728, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1728, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1728, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1728, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1728, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1729:       x.max_recovery = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_max_recovery, __pyx_float_0_0) < 0) __PYX_ERR(0, 1729, __pyx_L1_error)
+1730:     for x in self.city_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1730, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1730, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1730, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1730, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1730, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1730, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1731:       x.max_recovery = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_max_recovery, __pyx_float_0_0) < 0) __PYX_ERR(0, 1731, __pyx_L1_error)
 1732:     #each waterbank has a list of district participants -
 1733: 	#they get credit for their ownership share of the total recovery capacity
+1734:     for w in self.waterbank_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1734, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1734, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1734, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1734, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1734, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1735:       for member in w.participant_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1735, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1735, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1735, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1735, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1735, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1735, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1735, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1736:         num_districts = self.district_keys_len[member]
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_member); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1736, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_8);
      __pyx_t_8 = 0;
+1737:         for irr_district in self.district_keys[member]:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1737, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_member); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1737, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1737, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1737, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1737, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1737, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1737, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1737, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_10(__pyx_t_8);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1737, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1738:           irr_district.max_recovery += w.ownership[member]*w.recovery/num_districts
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_ownership); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_member); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recovery); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_13 = PyNumber_Multiply(__pyx_t_12, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_13, __pyx_v_num_districts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery, __pyx_t_13) < 0) __PYX_ERR(0, 1738, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 1739:     #same for 'in leiu' banks (districts)
+1740:     for w in self.leiu_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1740, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1740, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1740, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1740, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1740, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1740, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1740, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+1741:       for member in w.participant_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1741, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1741, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1741, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1741, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1741, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1741, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_8);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1741, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1742:         num_districts = self.district_keys_len[member]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1742, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1742, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_13);
      __pyx_t_13 = 0;
+1743:         if member != w.key:
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1743, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_member, __pyx_t_13, Py_NE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1743, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 1743, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_14) {
/* … */
      }
+1744:           for irr_district in self.district_keys[member]:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
          __pyx_t_1 = __pyx_t_13; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
          __pyx_t_10 = NULL;
        } else {
          __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1744, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 1744, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        for (;;) {
          if (likely(!__pyx_t_10)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1744, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1744, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            } else {
              if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_13); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 1744, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1744, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            }
          } else {
            __pyx_t_13 = __pyx_t_10(__pyx_t_1);
            if (unlikely(!__pyx_t_13)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1744, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_13);
          }
          __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_13);
          __pyx_t_13 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1745:             irr_district.max_recovery += w.leiu_ownership[member]*w.leiu_recovery/num_districts
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_member); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_recovery); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_12 = PyNumber_Multiply(__pyx_t_2, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_v_num_districts); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_recovery, __pyx_t_12) < 0) __PYX_ERR(0, 1745, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 1746: 
+1747:   def load_pesticide_acreage(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_43load_pesticide_acreage(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_43load_pesticide_acreage = {"load_pesticide_acreage", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_43load_pesticide_acreage, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_43load_pesticide_acreage(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_pesticide_acreage (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_42load_pesticide_acreage(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_42load_pesticide_acreage(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_id_dict = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_district_filename = NULL;
  PyObject *__pyx_v_pesticide_data = NULL;
  PyObject *__pyx_v_data_start_year = NULL;
  PyObject *__pyx_v_crop_type = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__42)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_pesticide_acreage", 0);
  __Pyx_TraceCall("load_pesticide_acreage", __pyx_f[0], 1747, 0, __PYX_ERR(0, 1747, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.load_pesticide_acreage", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_id_dict);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_district_filename);
  __Pyx_XDECREF(__pyx_v_pesticide_data);
  __Pyx_XDECREF(__pyx_v_data_start_year);
  __Pyx_XDECREF(__pyx_v_crop_type);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__110 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_id_dict, __pyx_n_s_x, __pyx_n_s_district_filename, __pyx_n_s_pesticide_data, __pyx_n_s_data_start_year, __pyx_n_s_crop_type, __pyx_n_s_y); if (unlikely(!__pyx_tuple__110)) __PYX_ERR(0, 1747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__110);
  __Pyx_GIVEREF(__pyx_tuple__110);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_43load_pesticide_acreage, 0, __pyx_n_s_Model_load_pesticide_acreage, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__42)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1747, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_load_pesticide_acreage, __pyx_t_2) < 0) __PYX_ERR(0, 1747, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__42 = (PyObject*)__Pyx_PyCode_New(1, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__110, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_load_pesticide_acreage, 1747, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__42)) __PYX_ERR(0, 1747, __pyx_L1_error)
+1748:     id_dict = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1748, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_id_dict = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1749:     id_dict['ALT'] = 'Alta Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ALT, __pyx_kp_u_Alta_Irrigation_District) < 0)) __PYX_ERR(0, 1749, __pyx_L1_error)
+1750:     id_dict['ARV'] = 'Arvin - Edison Water Storage District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ARV, __pyx_kp_u_Arvin_Edison_Water_Storage_Distr) < 0)) __PYX_ERR(0, 1750, __pyx_L1_error)
+1751:     id_dict['BDM'] = 'Berrenda Mesa Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_BDM, __pyx_kp_u_Berrenda_Mesa_Water_District) < 0)) __PYX_ERR(0, 1751, __pyx_L1_error)
+1752:     id_dict['BVA'] = 'Buena Vista Water Storage District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_BVA, __pyx_kp_u_Buena_Vista_Water_Storage_Distri) < 0)) __PYX_ERR(0, 1752, __pyx_L1_error)
+1753:     id_dict['CWO'] = 'Cawelo Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_CWO, __pyx_kp_u_Cawelo_Water_District) < 0)) __PYX_ERR(0, 1753, __pyx_L1_error)
+1754:     id_dict['CNS'] = 'Consolidated Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_CNS, __pyx_kp_u_Consolidated_Irrigation_District) < 0)) __PYX_ERR(0, 1754, __pyx_L1_error)
+1755:     id_dict['COR'] = 'Corcoran Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_COR, __pyx_kp_u_Corcoran_Irrigation_District) < 0)) __PYX_ERR(0, 1755, __pyx_L1_error)
+1756:     id_dict['DLE'] = 'Delano - Earlimart Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_DLE, __pyx_kp_u_Delano_Earlimart_Irrigation_Dist) < 0)) __PYX_ERR(0, 1756, __pyx_L1_error)
+1757:     id_dict['DLR'] = 'Dudley Ridge Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_DLR, __pyx_kp_u_Dudley_Ridge_Water_District) < 0)) __PYX_ERR(0, 1757, __pyx_L1_error)
+1758:     id_dict['FRB'] = 'Firebaugh Canal Company'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_FRB, __pyx_kp_u_Firebaugh_Canal_Company) < 0)) __PYX_ERR(0, 1758, __pyx_L1_error)
+1759:     id_dict['FRS'] = 'Fresno Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_FRS, __pyx_kp_u_Fresno_Irrigation_District) < 0)) __PYX_ERR(0, 1759, __pyx_L1_error)
+1760:     id_dict['JMS'] = 'James Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_JMS, __pyx_kp_u_James_Irrigation_District) < 0)) __PYX_ERR(0, 1760, __pyx_L1_error)
+1761:     id_dict['KRT'] = 'Kern - Tulare Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KRT, __pyx_kp_u_Kern_Tulare_Water_District) < 0)) __PYX_ERR(0, 1761, __pyx_L1_error)
+1762:     id_dict['KND'] = 'Kern Delta Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KND, __pyx_kp_u_Kern_Delta_Water_District) < 0)) __PYX_ERR(0, 1762, __pyx_L1_error)
+1763:     id_dict['KRWD'] = 'Kings River Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_KRWD, __pyx_kp_u_Kings_River_Water_District) < 0)) __PYX_ERR(0, 1763, __pyx_L1_error)
+1764:     id_dict['LND'] = 'Lindmore Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LND, __pyx_kp_u_Lindmore_Irrigation_District) < 0)) __PYX_ERR(0, 1764, __pyx_L1_error)
+1765:     id_dict['LHL'] = 'Lost Hills Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LHL, __pyx_kp_u_Lost_Hills_Water_District) < 0)) __PYX_ERR(0, 1765, __pyx_L1_error)
+1766:     id_dict['LWT'] = 'Lower Tule River Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_LWT, __pyx_kp_u_Lower_Tule_River_Irrigation_Dist) < 0)) __PYX_ERR(0, 1766, __pyx_L1_error)
+1767:     id_dict['NKN'] = 'North Kern Water Storage District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_NKN, __pyx_kp_u_North_Kern_Water_Storage_Distric) < 0)) __PYX_ERR(0, 1767, __pyx_L1_error)
+1768:     id_dict['ORC'] = 'Orange Cove Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_ORC, __pyx_kp_u_Orange_Cove_Irrigation_District) < 0)) __PYX_ERR(0, 1768, __pyx_L1_error)
+1769:     id_dict['PNC'] = 'Panoche Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_PNC, __pyx_kp_u_Panoche_Water_District) < 0)) __PYX_ERR(0, 1769, __pyx_L1_error)
+1770:     id_dict['PIX'] = 'Pixley Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_PIX, __pyx_kp_u_Pixley_Irrigation_District) < 0)) __PYX_ERR(0, 1770, __pyx_L1_error)
+1771:     id_dict['RVD'] = 'Riverdale Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_RVD, __pyx_kp_u_Riverdale_Irrigation_District) < 0)) __PYX_ERR(0, 1771, __pyx_L1_error)
+1772:     id_dict['SMI'] = 'Semitropic Water Service District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_SMI, __pyx_kp_u_Semitropic_Water_Service_Distric) < 0)) __PYX_ERR(0, 1772, __pyx_L1_error)
+1773:     id_dict['SFW'] = 'Shafter - Wasco Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_SFW, __pyx_kp_u_Shafter_Wasco_Irrigation_Distric) < 0)) __PYX_ERR(0, 1773, __pyx_L1_error)
+1774:     id_dict['TUL'] = 'Tulare Irrigation District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_TUL, __pyx_kp_u_Tulare_Irrigation_District) < 0)) __PYX_ERR(0, 1774, __pyx_L1_error)
+1775:     id_dict['TLB'] = 'Tulare Lake Basin Water Storage District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_TLB, __pyx_kp_u_Tulare_Lake_Basin_Water_Storage) < 0)) __PYX_ERR(0, 1775, __pyx_L1_error)
+1776:     id_dict['WSL'] = 'Westlands Water District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_WSL, __pyx_kp_u_Westlands_Water_District) < 0)) __PYX_ERR(0, 1776, __pyx_L1_error)
+1777:     id_dict['WRM'] = 'Wheeler Ridge - Maricopa Water Storage District'
  if (unlikely(PyDict_SetItem(__pyx_v_id_dict, __pyx_n_u_WRM, __pyx_kp_u_Wheeler_Ridge_Maricopa_Water_Sto) < 0)) __PYX_ERR(0, 1777, __pyx_L1_error)
+1778:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1778, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1778, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1778, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1778, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 1778, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1778, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1778, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1779:       if x.key in id_dict:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1779, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = (__Pyx_PyDict_ContainsTF(__pyx_t_1, __pyx_v_id_dict, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1779, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = (__pyx_t_5 != 0);
    if (__pyx_t_6) {
/* … */
    }
+1780:         x.has_pesticide = 1
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_has_pesticide, __pyx_int_1) < 0) __PYX_ERR(0, 1780, __pyx_L1_error)
+1781:         x.acreage_by_year = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1781, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_year, __pyx_t_1) < 0) __PYX_ERR(0, 1781, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1782:         district_filename = id_dict[x.key]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_id_dict, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_filename, __pyx_t_7);
      __pyx_t_7 = 0;
+1783:         pesticide_data = pd.read_csv('calfews_src/data/input/pesticide_acreage/' + district_filename + '.csv', index_col = 0)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_pd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_kp_u_calfews_src_data_input_pesticide, __pyx_v_district_filename); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = PyNumber_Add(__pyx_t_7, __pyx_kp_u_csv); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1783, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_pesticide_data, __pyx_t_9);
      __pyx_t_9 = 0;
+1784:         data_start_year = 0
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_XDECREF_SET(__pyx_v_data_start_year, __pyx_int_0);
+1785:         for crop_type in pesticide_data:
      if (likely(PyList_CheckExact(__pyx_v_pesticide_data)) || PyTuple_CheckExact(__pyx_v_pesticide_data)) {
        __pyx_t_9 = __pyx_v_pesticide_data; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_v_pesticide_data); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1785, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1785, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_9))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1785, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1785, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_8); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1785, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1785, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_11(__pyx_t_9);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1785, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_crop_type, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+1786:           x.acreage_by_year[crop_type] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_8 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_12, __pyx_t_7) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_7);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_crop_type, __pyx_t_8) < 0)) __PYX_ERR(0, 1786, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+1787:           for y in range(0, self.number_years):
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_8);
        __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1787, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1787, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_8); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1787, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1787, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_8); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 1787, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1787, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_14(__pyx_t_1);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 1787, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
          __pyx_t_8 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1788:             x.acreage_by_year[crop_type][y] = pesticide_data[crop_type][y+data_start_year]
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_pesticide_data, __pyx_v_crop_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_7 = PyNumber_Add(__pyx_v_y, __pyx_v_data_start_year); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_year); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_crop_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_y, __pyx_t_12) < 0)) __PYX_ERR(0, 1788, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 1789: 
+1790:   def load_pmp_model(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_45load_pmp_model(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_45load_pmp_model = {"load_pmp_model", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_45load_pmp_model, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_45load_pmp_model(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_pmp_model (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_44load_pmp_model(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_44load_pmp_model(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  CYTHON_UNUSED PyObject *__pyx_v_color_list = NULL;
  PyObject *__pyx_v_pmp_coef = NULL;
  PyObject *__pyx_v_pmp_coef_list = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_econ_data = NULL;
  PyObject *__pyx_v_econ_data_list = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_legend_dict = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_district_id = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_land_constraint = NULL;
  PyObject *__pyx_v_crop = NULL;
  PyObject *__pyx_v_water_constraint_by_source = NULL;
  PyObject *__pyx_v_source = NULL;
  PyObject *__pyx_v_x0 = NULL;
  PyObject *__pyx_v_observed_acreage = NULL;
  PyObject *__pyx_v_district_crops = NULL;
  PyObject *__pyx_v_i = NULL;
  PyObject *__pyx_v_calculated = NULL;
  PyObject *__pyx_v_observed = NULL;
  PyObject *__pyx_v_total_land = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__43)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("load_pmp_model", 0);
  __Pyx_TraceCall("load_pmp_model", __pyx_f[0], 1790, 0, __PYX_ERR(0, 1790, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.load_pmp_model", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_color_list);
  __Pyx_XDECREF(__pyx_v_pmp_coef);
  __Pyx_XDECREF(__pyx_v_pmp_coef_list);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_econ_data);
  __Pyx_XDECREF(__pyx_v_econ_data_list);
  __Pyx_XDECREF(__pyx_v_legend_dict);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_district_id);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_land_constraint);
  __Pyx_XDECREF(__pyx_v_crop);
  __Pyx_XDECREF(__pyx_v_water_constraint_by_source);
  __Pyx_XDECREF(__pyx_v_source);
  __Pyx_XDECREF(__pyx_v_x0);
  __Pyx_XDECREF(__pyx_v_observed_acreage);
  __Pyx_XDECREF(__pyx_v_district_crops);
  __Pyx_XDECREF(__pyx_v_i);
  __Pyx_XDECREF(__pyx_v_calculated);
  __Pyx_XDECREF(__pyx_v_observed);
  __Pyx_XDECREF(__pyx_v_total_land);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__111 = PyTuple_Pack(23, __pyx_n_s_self, __pyx_n_s_color_list, __pyx_n_s_pmp_coef, __pyx_n_s_pmp_coef_list, __pyx_n_s_x, __pyx_n_s_econ_data, __pyx_n_s_econ_data_list, __pyx_n_s_legend_dict, __pyx_n_s_xx, __pyx_n_s_district, __pyx_n_s_district_id, __pyx_n_s_district_object, __pyx_n_s_land_constraint, __pyx_n_s_crop, __pyx_n_s_water_constraint_by_source, __pyx_n_s_source, __pyx_n_s_x0, __pyx_n_s_observed_acreage, __pyx_n_s_district_crops, __pyx_n_s_i, __pyx_n_s_calculated, __pyx_n_s_observed, __pyx_n_s_total_land); if (unlikely(!__pyx_tuple__111)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__111);
  __Pyx_GIVEREF(__pyx_tuple__111);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_45load_pmp_model, 0, __pyx_n_s_Model_load_pmp_model, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_load_pmp_model, __pyx_t_2) < 0) __PYX_ERR(0, 1790, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(1, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__111, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_load_pmp_model, 1790, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 1790, __pyx_L1_error)
+1791:     color_list = ['black', 'gray', 'firebrick', 'red', 'darksalmon', 'sandybrown', 'gold', 'chartreuse', 'seagreen', 'deepskyblue', 'royalblue', 'darkorchid', 'darkcyan', 'crimson', 'fuchsia', 'cyan', 'green', 'yellowgreen', 'coral', 'orange', 'hotpink', 'thistle', 'azure', 'yellow', 'dimgray', 'turquoise', 'navy', 'mediumspringgreen']
  __pyx_t_1 = PyList_New(28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1791, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_black);
  __Pyx_GIVEREF(__pyx_n_u_black);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_black);
  __Pyx_INCREF(__pyx_n_u_gray);
  __Pyx_GIVEREF(__pyx_n_u_gray);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_gray);
  __Pyx_INCREF(__pyx_n_u_firebrick);
  __Pyx_GIVEREF(__pyx_n_u_firebrick);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_firebrick);
  __Pyx_INCREF(__pyx_n_u_red);
  __Pyx_GIVEREF(__pyx_n_u_red);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_red);
  __Pyx_INCREF(__pyx_n_u_darksalmon);
  __Pyx_GIVEREF(__pyx_n_u_darksalmon);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_darksalmon);
  __Pyx_INCREF(__pyx_n_u_sandybrown);
  __Pyx_GIVEREF(__pyx_n_u_sandybrown);
  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_sandybrown);
  __Pyx_INCREF(__pyx_n_u_gold);
  __Pyx_GIVEREF(__pyx_n_u_gold);
  PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_gold);
  __Pyx_INCREF(__pyx_n_u_chartreuse);
  __Pyx_GIVEREF(__pyx_n_u_chartreuse);
  PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_chartreuse);
  __Pyx_INCREF(__pyx_n_u_seagreen);
  __Pyx_GIVEREF(__pyx_n_u_seagreen);
  PyList_SET_ITEM(__pyx_t_1, 8, __pyx_n_u_seagreen);
  __Pyx_INCREF(__pyx_n_u_deepskyblue);
  __Pyx_GIVEREF(__pyx_n_u_deepskyblue);
  PyList_SET_ITEM(__pyx_t_1, 9, __pyx_n_u_deepskyblue);
  __Pyx_INCREF(__pyx_n_u_royalblue);
  __Pyx_GIVEREF(__pyx_n_u_royalblue);
  PyList_SET_ITEM(__pyx_t_1, 10, __pyx_n_u_royalblue);
  __Pyx_INCREF(__pyx_n_u_darkorchid);
  __Pyx_GIVEREF(__pyx_n_u_darkorchid);
  PyList_SET_ITEM(__pyx_t_1, 11, __pyx_n_u_darkorchid);
  __Pyx_INCREF(__pyx_n_u_darkcyan);
  __Pyx_GIVEREF(__pyx_n_u_darkcyan);
  PyList_SET_ITEM(__pyx_t_1, 12, __pyx_n_u_darkcyan);
  __Pyx_INCREF(__pyx_n_u_crimson);
  __Pyx_GIVEREF(__pyx_n_u_crimson);
  PyList_SET_ITEM(__pyx_t_1, 13, __pyx_n_u_crimson);
  __Pyx_INCREF(__pyx_n_u_fuchsia);
  __Pyx_GIVEREF(__pyx_n_u_fuchsia);
  PyList_SET_ITEM(__pyx_t_1, 14, __pyx_n_u_fuchsia);
  __Pyx_INCREF(__pyx_n_u_cyan);
  __Pyx_GIVEREF(__pyx_n_u_cyan);
  PyList_SET_ITEM(__pyx_t_1, 15, __pyx_n_u_cyan);
  __Pyx_INCREF(__pyx_n_u_green);
  __Pyx_GIVEREF(__pyx_n_u_green);
  PyList_SET_ITEM(__pyx_t_1, 16, __pyx_n_u_green);
  __Pyx_INCREF(__pyx_n_u_yellowgreen);
  __Pyx_GIVEREF(__pyx_n_u_yellowgreen);
  PyList_SET_ITEM(__pyx_t_1, 17, __pyx_n_u_yellowgreen);
  __Pyx_INCREF(__pyx_n_u_coral);
  __Pyx_GIVEREF(__pyx_n_u_coral);
  PyList_SET_ITEM(__pyx_t_1, 18, __pyx_n_u_coral);
  __Pyx_INCREF(__pyx_n_u_orange);
  __Pyx_GIVEREF(__pyx_n_u_orange);
  PyList_SET_ITEM(__pyx_t_1, 19, __pyx_n_u_orange);
  __Pyx_INCREF(__pyx_n_u_hotpink);
  __Pyx_GIVEREF(__pyx_n_u_hotpink);
  PyList_SET_ITEM(__pyx_t_1, 20, __pyx_n_u_hotpink);
  __Pyx_INCREF(__pyx_n_u_thistle);
  __Pyx_GIVEREF(__pyx_n_u_thistle);
  PyList_SET_ITEM(__pyx_t_1, 21, __pyx_n_u_thistle);
  __Pyx_INCREF(__pyx_n_u_azure);
  __Pyx_GIVEREF(__pyx_n_u_azure);
  PyList_SET_ITEM(__pyx_t_1, 22, __pyx_n_u_azure);
  __Pyx_INCREF(__pyx_n_u_yellow);
  __Pyx_GIVEREF(__pyx_n_u_yellow);
  PyList_SET_ITEM(__pyx_t_1, 23, __pyx_n_u_yellow);
  __Pyx_INCREF(__pyx_n_u_dimgray);
  __Pyx_GIVEREF(__pyx_n_u_dimgray);
  PyList_SET_ITEM(__pyx_t_1, 24, __pyx_n_u_dimgray);
  __Pyx_INCREF(__pyx_n_u_turquoise);
  __Pyx_GIVEREF(__pyx_n_u_turquoise);
  PyList_SET_ITEM(__pyx_t_1, 25, __pyx_n_u_turquoise);
  __Pyx_INCREF(__pyx_n_u_navy);
  __Pyx_GIVEREF(__pyx_n_u_navy);
  PyList_SET_ITEM(__pyx_t_1, 26, __pyx_n_u_navy);
  __Pyx_INCREF(__pyx_n_u_mediumspringgreen);
  __Pyx_GIVEREF(__pyx_n_u_mediumspringgreen);
  PyList_SET_ITEM(__pyx_t_1, 27, __pyx_n_u_mediumspringgreen);
  __pyx_v_color_list = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
 1792: 
+1793:     pmp_coef = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1793, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_pmp_coef = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1794:     pmp_coef_list = ['TAU', 'GAMMA', 'ETA', 'DELTA', 'BETA', 'LEONTIEF', 'INPUTS', 'REV']
  __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1794, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_TAU);
  __Pyx_GIVEREF(__pyx_n_u_TAU);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_TAU);
  __Pyx_INCREF(__pyx_n_u_GAMMA);
  __Pyx_GIVEREF(__pyx_n_u_GAMMA);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_GAMMA);
  __Pyx_INCREF(__pyx_n_u_ETA);
  __Pyx_GIVEREF(__pyx_n_u_ETA);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_ETA);
  __Pyx_INCREF(__pyx_n_u_DELTA);
  __Pyx_GIVEREF(__pyx_n_u_DELTA);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_DELTA);
  __Pyx_INCREF(__pyx_n_u_BETA);
  __Pyx_GIVEREF(__pyx_n_u_BETA);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_BETA);
  __Pyx_INCREF(__pyx_n_u_LEONTIEF);
  __Pyx_GIVEREF(__pyx_n_u_LEONTIEF);
  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_LEONTIEF);
  __Pyx_INCREF(__pyx_n_u_INPUTS);
  __Pyx_GIVEREF(__pyx_n_u_INPUTS);
  PyList_SET_ITEM(__pyx_t_1, 6, __pyx_n_u_INPUTS);
  __Pyx_INCREF(__pyx_n_u_REV);
  __Pyx_GIVEREF(__pyx_n_u_REV);
  PyList_SET_ITEM(__pyx_t_1, 7, __pyx_n_u_REV);
  __pyx_v_pmp_coef_list = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1795:     for x in pmp_coef_list:
  __pyx_t_1 = __pyx_v_pmp_coef_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1795, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1796:       pmp_coef[x] = pd.read_csv('calfews_src/data/input/pmp_modelling/BASE' + x + '.csv', index_col = None)
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Add(__pyx_kp_u_calfews_src_data_input_pmp_model, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_kp_u_csv); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_index_col, Py_None) < 0) __PYX_ERR(0, 1796, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_pmp_coef, __pyx_v_x, __pyx_t_6) < 0)) __PYX_ERR(0, 1796, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 1797: 
+1798:     econ_data = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_econ_data = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1799:     econ_data_list = ['PRICE', 'WSOU', 'WCST', 'LANDCOST', 'LABOR', 'SUPPL']
  __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1799, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_PRICE);
  __Pyx_GIVEREF(__pyx_n_u_PRICE);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_PRICE);
  __Pyx_INCREF(__pyx_n_u_WSOU);
  __Pyx_GIVEREF(__pyx_n_u_WSOU);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_WSOU);
  __Pyx_INCREF(__pyx_n_u_WCST);
  __Pyx_GIVEREF(__pyx_n_u_WCST);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_WCST);
  __Pyx_INCREF(__pyx_n_u_LANDCOST);
  __Pyx_GIVEREF(__pyx_n_u_LANDCOST);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_LANDCOST);
  __Pyx_INCREF(__pyx_n_u_LABOR);
  __Pyx_GIVEREF(__pyx_n_u_LABOR);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_n_u_LABOR);
  __Pyx_INCREF(__pyx_n_u_SUPPL);
  __Pyx_GIVEREF(__pyx_n_u_SUPPL);
  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_n_u_SUPPL);
  __pyx_v_econ_data_list = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1800:     for x in econ_data_list:
  __pyx_t_1 = __pyx_v_econ_data_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_6); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1800, __pyx_L1_error)
    #else
    __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1801:       econ_data[x] = pd.read_excel('calfews_src/data/input/pmp_modelling/Aligned_OAE_Kern_V05.xlsx', sheet_name = x, index_col = None)
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_pd); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_read_excel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_sheet_name, __pyx_v_x) < 0) __PYX_ERR(0, 1801, __pyx_L1_error)
    if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_index_col, Py_None) < 0) __PYX_ERR(0, 1801, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_tuple__44, __pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_econ_data, __pyx_v_x, __pyx_t_3) < 0)) __PYX_ERR(0, 1801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
  __pyx_tuple__44 = PyTuple_Pack(1, __pyx_kp_u_calfews_src_data_input_pmp_model_2); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 1801, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);
 1802: 
+1803:     self.district_codes = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1803, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_district_codes, __pyx_t_1) < 0) __PYX_ERR(0, 1803, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1804:     self.district_codes['D02'] = 'KND'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1804, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D02, __pyx_n_u_KND) < 0)) __PYX_ERR(0, 1804, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1805:     self.district_codes['D03'] = 'WRM'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1805, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D03, __pyx_n_u_WRM) < 0)) __PYX_ERR(0, 1805, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1806:     self.district_codes['D04'] = 'WKN'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D04, __pyx_n_u_WKN) < 0)) __PYX_ERR(0, 1806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1807:     self.district_codes['D05'] = 'BDM'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1807, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D05, __pyx_n_u_BDM) < 0)) __PYX_ERR(0, 1807, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1808:     self.district_codes['D06'] = 'SMI'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D06, __pyx_n_u_SMI) < 0)) __PYX_ERR(0, 1808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1809:     self.district_codes['D07'] = 'RRB'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1809, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D07, __pyx_n_u_RRB) < 0)) __PYX_ERR(0, 1809, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1810:     self.district_codes['D08'] = 'BVA'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1810, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D08, __pyx_n_u_BVA) < 0)) __PYX_ERR(0, 1810, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1811:     self.district_codes['D09'] = 'CWO'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1811, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D09, __pyx_n_u_CWO) < 0)) __PYX_ERR(0, 1811, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1812:     self.district_codes['D10'] = 'HML'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D10, __pyx_n_u_HML) < 0)) __PYX_ERR(0, 1812, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1813:     self.district_codes['D11'] = 'LHL'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1813, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_D11, __pyx_n_u_LHL) < 0)) __PYX_ERR(0, 1813, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1814:     self.district_codes['fk01'] = 'DLE'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1814, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk01, __pyx_n_u_DLE) < 0)) __PYX_ERR(0, 1814, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1815:     self.district_codes['fk02'] = 'EXE'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk02, __pyx_n_u_EXE) < 0)) __PYX_ERR(0, 1815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1816:     self.district_codes['fk03'] = 'KRT'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1816, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk03, __pyx_n_u_KRT) < 0)) __PYX_ERR(0, 1816, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1817:     self.district_codes['fk04'] = 'LND'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk04, __pyx_n_u_LND) < 0)) __PYX_ERR(0, 1817, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1818:     self.district_codes['fk05'] = 'LDS'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk05, __pyx_n_u_LDS) < 0)) __PYX_ERR(0, 1818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1819:     self.district_codes['fk06'] = 'LWT'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk06, __pyx_n_u_LWT) < 0)) __PYX_ERR(0, 1819, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1820:     self.district_codes['fk07'] = 'PRT'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk07, __pyx_n_u_PRT) < 0)) __PYX_ERR(0, 1820, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1821:     self.district_codes['fk08'] = 'SAU'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1821, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk08, __pyx_n_u_SAU) < 0)) __PYX_ERR(0, 1821, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1822:     self.district_codes['fk09'] = 'SFW'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1822, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk09, __pyx_n_u_SFW) < 0)) __PYX_ERR(0, 1822, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1823:     self.district_codes['fk10'] = 'SSJ'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk10, __pyx_n_u_SSJ) < 0)) __PYX_ERR(0, 1823, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1824:     self.district_codes['fk11'] = 'TPD'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1824, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk11, __pyx_n_u_TPD) < 0)) __PYX_ERR(0, 1824, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1825:     self.district_codes['fk12'] = 'TBA'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1825, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk12, __pyx_n_u_TBA) < 0)) __PYX_ERR(0, 1825, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1826:     self.district_codes['fk13'] = 'TLR'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1826, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk13, __pyx_n_u_TLR) < 0)) __PYX_ERR(0, 1826, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1827:     self.district_codes['fk14'] = 'VAN'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_fk14, __pyx_n_u_VAN) < 0)) __PYX_ERR(0, 1827, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1828:     self.district_codes['ot1'] = 'DLR'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1828, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot1, __pyx_n_u_DLR) < 0)) __PYX_ERR(0, 1828, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1829:     self.district_codes['ot2'] = 'NKN'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1829, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot2, __pyx_n_u_NKN) < 0)) __PYX_ERR(0, 1829, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1830:     self.district_codes['ot3'] = 'OLC'
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_ot3, __pyx_n_u_OLC) < 0)) __PYX_ERR(0, 1830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1831: 
+1832:     self.source_codes = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_source_codes, __pyx_t_1) < 0) __PYX_ERR(0, 1832, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1833:     self.source_codes['SWP'] = ['tableA',]
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_tableA);
  __Pyx_GIVEREF(__pyx_n_u_tableA);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_tableA);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1833, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_SWP, __pyx_t_1) < 0)) __PYX_ERR(0, 1833, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1834:     self.source_codes['CVP'] = ['cvpdelta',]
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_cvpdelta);
  __Pyx_GIVEREF(__pyx_n_u_cvpdelta);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_cvpdelta);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CVP, __pyx_t_1) < 0)) __PYX_ERR(0, 1834, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1835:     self.source_codes['CLASS1'] = ['friant1',]
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_friant1);
  __Pyx_GIVEREF(__pyx_n_u_friant1);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_friant1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CLASS1, __pyx_t_1) < 0)) __PYX_ERR(0, 1835, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1836:     self.source_codes['CLASS2'] = ['friant2',]
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_friant2);
  __Pyx_GIVEREF(__pyx_n_u_friant2);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_friant2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_CLASS2, __pyx_t_1) < 0)) __PYX_ERR(0, 1836, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1837:     self.source_codes['LDIV'] = ['kern', 'kings', 'tule', 'kaweah']
  __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_u_kern);
  __Pyx_GIVEREF(__pyx_n_u_kern);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_u_kern);
  __Pyx_INCREF(__pyx_n_u_kings);
  __Pyx_GIVEREF(__pyx_n_u_kings);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_n_u_kings);
  __Pyx_INCREF(__pyx_n_u_tule);
  __Pyx_GIVEREF(__pyx_n_u_tule);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_n_u_tule);
  __Pyx_INCREF(__pyx_n_u_kaweah);
  __Pyx_GIVEREF(__pyx_n_u_kaweah);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_n_u_kaweah);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_LDIV, __pyx_t_1) < 0)) __PYX_ERR(0, 1837, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1838:     legend_dict = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_legend_dict = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+1839:     xx = 0
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_xx = __pyx_int_0;
+1840:     for district in self.district_codes:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_2 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 1840, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1840, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 1840, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1840, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_7(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1840, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1841:       district_id = self.district_codes[district]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_codes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_district); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1841, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_district_id, __pyx_t_6);
    __pyx_t_6 = 0;
+1842:       if district_id in self.district_keys:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = (__Pyx_PySequence_ContainsTF(__pyx_v_district_id, __pyx_t_6, Py_EQ)); if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 1842, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_9 = (__pyx_t_8 != 0);
    if (__pyx_t_9) {
/* … */
    }
+1843:         district_object = self.district_keys[district_id]
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1843, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_district_id); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1843, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_1);
      __pyx_t_1 = 0;
+1844:         district_object.has_pmp = 1
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_district_object, __pyx_n_s_has_pmp, __pyx_int_1) < 0) __PYX_ERR(0, 1844, __pyx_L1_error)
+1845:         district_object.irrdemand.set_pmp_parameters(pmp_coef, district)
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_set_pmp_parameters); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pmp_coef, __pyx_v_district};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1845, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_v_pmp_coef, __pyx_v_district};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1845, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_INCREF(__pyx_v_pmp_coef);
        __Pyx_GIVEREF(__pyx_v_pmp_coef);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_10, __pyx_v_pmp_coef);
        __Pyx_INCREF(__pyx_v_district);
        __Pyx_GIVEREF(__pyx_v_district);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_10, __pyx_v_district);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1846:         district_object.irrdemand.make_crop_list()
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_make_crop_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1847:         district_object.irrdemand.set_econ_parameters(econ_data, district)
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_set_econ_parameters); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1847, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_econ_data, __pyx_v_district};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1847, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_v_econ_data, __pyx_v_district};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_10, 2+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1847, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(2+__pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1847, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_econ_data);
        __Pyx_GIVEREF(__pyx_v_econ_data);
        PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_10, __pyx_v_econ_data);
        __Pyx_INCREF(__pyx_v_district);
        __Pyx_GIVEREF(__pyx_v_district);
        PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_10, __pyx_v_district);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1847, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1848:         district_object.total_water_base = 0.0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_district_object, __pyx_n_s_total_water_base, __pyx_float_0_0) < 0) __PYX_ERR(0, 1848, __pyx_L1_error)
+1849:         land_constraint = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_land_constraint, __pyx_float_0_0);
+1850:         for crop in district_object.irrdemand.crop_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1850, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1850, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1850, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1850, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1850, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1850, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_12(__pyx_t_1);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1850, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1851:           district_object.total_water_base += district_object.irrdemand.baseline_inputs['WATER'][crop]##base case water inputs to validate pmp model - within timestep use self.source_codes to get contracts
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_baseline_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_WATER); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_district_object, __pyx_n_s_total_water_base, __pyx_t_6) < 0) __PYX_ERR(0, 1851, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+1852:           land_constraint += district_object.irrdemand.baseline_inputs['LAND'][crop]
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_baseline_inputs); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_LAND); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_land_constraint, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1852, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF_SET(__pyx_v_land_constraint, __pyx_t_6);
        __pyx_t_6 = 0;
+1853:         water_constraint_by_source = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_water_constraint_by_source, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
+1854:         for source in district_object.irrdemand.water_source_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_water_source_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1854, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1854, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1854, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1854, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1854, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1854, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1854, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_12(__pyx_t_1);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1854, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_source, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1855:           water_constraint_by_source[source] = district_object.irrdemand.econ_factors[source]*district_object.total_water_base
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_econ_factors); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_source); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_6, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_v_source, __pyx_t_5) < 0)) __PYX_ERR(0, 1855, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 1856: 
+1857:         x0 = np.zeros(len(district_object.irrdemand.crop_list))
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_11 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_x0, __pyx_t_1);
      __pyx_t_1 = 0;
+1858:         district_object.set_pmp_acreage(water_constraint_by_source, land_constraint, x0)
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_set_pmp_acreage); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1858, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1858, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1858, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1858, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_INCREF(__pyx_v_water_constraint_by_source);
        __Pyx_GIVEREF(__pyx_v_water_constraint_by_source);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_10, __pyx_v_water_constraint_by_source);
        __Pyx_INCREF(__pyx_v_land_constraint);
        __Pyx_GIVEREF(__pyx_v_land_constraint);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_10, __pyx_v_land_constraint);
        __Pyx_INCREF(__pyx_v_x0);
        __Pyx_GIVEREF(__pyx_v_x0);
        PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_10, __pyx_v_x0);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1858, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1859:         observed_acreage = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_observed_acreage, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
+1860:         for crop in district_object.irrdemand.crop_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
        __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1860, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1860, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1860, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 1860, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1860, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_12(__pyx_t_1);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1860, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_4);
        __pyx_t_4 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1861:           district_crops = district_object.irrdemand.crop_keys[crop]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1861, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_crop_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1861, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1861, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_crops, __pyx_t_4);
        __pyx_t_4 = 0;
+1862:           if district_crops in observed_acreage:
        __pyx_t_9 = (__Pyx_PyDict_ContainsTF(__pyx_v_district_crops, __pyx_v_observed_acreage, Py_EQ)); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 1862, __pyx_L1_error)
        __pyx_t_8 = (__pyx_t_9 != 0);
        if (__pyx_t_8) {
/* … */
          goto __pyx_L16;
        }
+1863:             observed_acreage[district_crops] += district_object.irrdemand.baseline_inputs['LAND'][crop]
          __Pyx_INCREF(__pyx_v_district_crops);
          __pyx_t_4 = __pyx_v_district_crops;
          __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_observed_acreage, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_baseline_inputs); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_13, __pyx_n_u_LAND); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_crop); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_observed_acreage, __pyx_t_4, __pyx_t_6) < 0)) __PYX_ERR(0, 1863, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1864:           else:
+1865:             observed_acreage[district_crops] = district_object.irrdemand.baseline_inputs['LAND'][crop]
        /*else*/ {
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1865, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_baseline_inputs); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1865, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_LAND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1865, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_crop); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1865, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_observed_acreage, __pyx_v_district_crops, __pyx_t_6) < 0)) __PYX_ERR(0, 1865, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __pyx_L16:;
+1866:         i = 0
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_XDECREF_SET(__pyx_v_i, __pyx_int_0);
+1867:         calculated = np.zeros(len(observed_acreage))
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_11 = PyDict_Size(__pyx_v_observed_acreage); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1867, __pyx_L1_error)
      __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_13 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_1 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_13, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_calculated, __pyx_t_1);
      __pyx_t_1 = 0;
+1868:         observed = np.zeros(len(observed_acreage))
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_11 = PyDict_Size(__pyx_v_observed_acreage); if (unlikely(__pyx_t_11 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1868, __pyx_L1_error)
      __pyx_t_4 = PyInt_FromSsize_t(__pyx_t_11); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_1 = (__pyx_t_13) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_13, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_4);
      __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_observed, __pyx_t_1);
      __pyx_t_1 = 0;
+1869:         total_land = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_total_land, __pyx_float_0_0);
+1870:         for crop in observed_acreage:
      __pyx_t_11 = 0;
      __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_observed_acreage, 1, ((PyObject *)NULL), (&__pyx_t_14), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1870, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF(__pyx_t_1);
      __pyx_t_1 = __pyx_t_6;
      __pyx_t_6 = 0;
      while (1) {
        __pyx_t_15 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_14, &__pyx_t_11, &__pyx_t_6, NULL, NULL, __pyx_t_10);
        if (unlikely(__pyx_t_15 == 0)) break;
        if (unlikely(__pyx_t_15 == -1)) __PYX_ERR(0, 1870, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_6);
        __pyx_t_6 = 0;
+1871:           calculated[i] = district_object.pmp_acreage[crop]
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pmp_acreage); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1871, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1871, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (unlikely(PyObject_SetItem(__pyx_v_calculated, __pyx_v_i, __pyx_t_4) < 0)) __PYX_ERR(0, 1871, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1872:           observed[i] = observed_acreage[crop]
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_observed_acreage, __pyx_v_crop); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1872, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(PyObject_SetItem(__pyx_v_observed, __pyx_v_i, __pyx_t_4) < 0)) __PYX_ERR(0, 1872, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1873:           total_land += calculated[i]
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_calculated, __pyx_v_i); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1873, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_total_land, __pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1873, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF_SET(__pyx_v_total_land, __pyx_t_6);
        __pyx_t_6 = 0;
+1874:           i += 1
        __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_i, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 1874, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF_SET(__pyx_v_i, __pyx_t_6);
        __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 1875: 
 1876:         #legend_dict[district] = plt.plot(calculated, observed, 'o', color = color_list[xx])
+1877:         xx += 1
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_xx, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF_SET(__pyx_v_xx, __pyx_t_1);
      __pyx_t_1 = 0;
 1878:     #legend_obj = tuple([legend_dict[e] for e in legend_dict])
 1879:     #legend_names = tuple([self.district_codes[e] for e in legend_dict])
 1880:     #plt.xlabel('Calculated Acreage')
 1881:     #plt.ylabel('Observed Acreage')
 1882:     #plt.legend(legend_names)
 1883:     #plt.show()
 1884:     #plt.close()
 1885: 
 1886: 
 1887: 
+1888:   def project_urban(self, datafile, datafile_cvp, datafile_pumping):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_47project_urban(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_47project_urban = {"project_urban", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_47project_urban, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_47project_urban(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_datafile = 0;
  PyObject *__pyx_v_datafile_cvp = 0;
  PyObject *__pyx_v_datafile_pumping = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("project_urban (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_datafile,&__pyx_n_s_datafile_cvp,&__pyx_n_s_datafile_pumping,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban", 1, 4, 4, 1); __PYX_ERR(0, 1888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile_cvp)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban", 1, 4, 4, 2); __PYX_ERR(0, 1888, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_datafile_pumping)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban", 1, 4, 4, 3); __PYX_ERR(0, 1888, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "project_urban") < 0)) __PYX_ERR(0, 1888, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_datafile = values[1];
    __pyx_v_datafile_cvp = values[2];
    __pyx_v_datafile_pumping = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("project_urban", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 1888, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.project_urban", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_46project_urban(__pyx_self, __pyx_v_self, __pyx_v_datafile, __pyx_v_datafile_cvp, __pyx_v_datafile_pumping);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_46project_urban(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_datafile, PyObject *__pyx_v_datafile_cvp, PyObject *__pyx_v_datafile_pumping) {
  PyObject *__pyx_v_df_urban = NULL;
  PyObject *__pyx_v_simulation_dates = NULL;
  PyObject *__pyx_v_urban_dates = NULL;
  PyObject *__pyx_v_start_date = NULL;
  PyObject *__pyx_v_end_date = NULL;
  PyObject *__pyx_v_date_mask = NULL;
  PyObject *__pyx_v_df_urban_monthly_cvp = NULL;
  PyObject *__pyx_v_df_pumping_prediction_control = NULL;
  PyObject *__pyx_v_index_urban = NULL;
  PyObject *__pyx_v_urban_historical_T = NULL;
  PyObject *__pyx_v_index_urban_d = NULL;
  PyObject *__pyx_v_index_urban_m = NULL;
  PyObject *__pyx_v_index_urban_y = NULL;
  PyObject *__pyx_v_index_urban_dowy = NULL;
  PyObject *__pyx_v_urban_startYear = NULL;
  PyObject *__pyx_v_urban_start_regression_year = NULL;
  PyObject *__pyx_v_urban_start_regression = NULL;
  PyObject *__pyx_v_index_urban_water_year = NULL;
  PyObject *__pyx_v_numYears_urban = NULL;
  PyObject *__pyx_v_urban_list = NULL;
  PyObject *__pyx_v_SRI_forecast = NULL;
  PyObject *__pyx_v_regression_annual_hro = NULL;
  PyObject *__pyx_v_regression_annual_trp = NULL;
  PyObject *__pyx_v_regression_percent = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_sim_y = NULL;
  PyObject *__pyx_v_sim_m = NULL;
  PyObject *__pyx_v_sim_d = NULL;
  long __pyx_v_start_counter;
  PyObject *__pyx_v_sri_regression = NULL;
  PyObject *__pyx_v_simt = NULL;
  PyObject *__pyx_v_urban_leap = NULL;
  PyObject *__pyx_v_urban_year_list = NULL;
  PyObject *__pyx_v_urban_days_in_month = NULL;
  PyObject *__pyx_v_hist_pumping = NULL;
  PyObject *__pyx_v_regression_annual = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_wateryear = NULL;
  PyObject *__pyx_v_year_index = NULL;
  PyObject *__pyx_v_t = NULL;
  PyObject *__pyx_v_metropolitan_demand = NULL;
  PyObject *__pyx_v_metropolitan_adjust = NULL;
  PyObject *__pyx_v_districts = NULL;
  PyObject *__pyx_v_recalc_pumping = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_year_counter = NULL;
  Py_ssize_t __pyx_v_pumping_counter;
  PyObject *__pyx_v_real_ratio = NULL;
  Py_ssize_t __pyx_v_pump_counter;
  PyObject *__pyx_v_dowy = NULL;
  PyObject *__pyx_v_sri_forecast_dowy = NULL;
  PyObject *__pyx_v_pumping_forecast_dowy = NULL;
  PyObject *__pyx_v_pumping_forecast_timeseries = NULL;
  PyObject *__pyx_v_regression_errors = NULL;
  PyObject *__pyx_v_regression_errors_timeseries = NULL;
  PyObject *__pyx_v_counter1 = NULL;
  PyObject *__pyx_v_fig = NULL;
  PyObject *__pyx_v_error_changes = NULL;
  PyObject *__pyx_v_pumping_changes = NULL;
  PyObject *__pyx_v_wateryear_day = NULL;
  PyObject *__pyx_v_coef = NULL;
  PyObject *__pyx_v_sri = NULL;
  PyObject *__pyx_v_percent = NULL;
  PyObject *__pyx_v_ax1 = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_wateryear_count = NULL;
  double __pyx_v_pumping_forecast_min;
  double __pyx_v_pumping_forecast_max;
  PyObject *__pyx_v_day_error_changes = NULL;
  PyObject *__pyx_v_day_pumping_changes = NULL;
  PyObject *__pyx_v_np_list_1_logi = NULL;
  PyObject *__pyx_v_day_error_cleaned = NULL;
  PyObject *__pyx_v_day_pumping_cleaned = NULL;
  PyObject *__pyx_v_y = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_r = NULL;
  PyObject *__pyx_v_ytd_pumping_int = NULL;
  PyObject *__pyx_v_predicted_annual_demand = NULL;
  CYTHON_UNUSED PyObject *__pyx_9genexpr11__pyx_v__ = NULL;
  CYTHON_UNUSED PyObject *__pyx_9genexpr12__pyx_v__ = NULL;
  PyObject *__pyx_9genexpr13__pyx_v__ = NULL;
  CYTHON_UNUSED PyObject *__pyx_9genexpr14__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__45)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("project_urban", 0);
  __Pyx_TraceCall("project_urban", __pyx_f[0], 1888, 0, __PYX_ERR(0, 1888, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.project_urban", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_df_urban);
  __Pyx_XDECREF(__pyx_v_simulation_dates);
  __Pyx_XDECREF(__pyx_v_urban_dates);
  __Pyx_XDECREF(__pyx_v_start_date);
  __Pyx_XDECREF(__pyx_v_end_date);
  __Pyx_XDECREF(__pyx_v_date_mask);
  __Pyx_XDECREF(__pyx_v_df_urban_monthly_cvp);
  __Pyx_XDECREF(__pyx_v_df_pumping_prediction_control);
  __Pyx_XDECREF(__pyx_v_index_urban);
  __Pyx_XDECREF(__pyx_v_urban_historical_T);
  __Pyx_XDECREF(__pyx_v_index_urban_d);
  __Pyx_XDECREF(__pyx_v_index_urban_m);
  __Pyx_XDECREF(__pyx_v_index_urban_y);
  __Pyx_XDECREF(__pyx_v_index_urban_dowy);
  __Pyx_XDECREF(__pyx_v_urban_startYear);
  __Pyx_XDECREF(__pyx_v_urban_start_regression_year);
  __Pyx_XDECREF(__pyx_v_urban_start_regression);
  __Pyx_XDECREF(__pyx_v_index_urban_water_year);
  __Pyx_XDECREF(__pyx_v_numYears_urban);
  __Pyx_XDECREF(__pyx_v_urban_list);
  __Pyx_XDECREF(__pyx_v_SRI_forecast);
  __Pyx_XDECREF(__pyx_v_regression_annual_hro);
  __Pyx_XDECREF(__pyx_v_regression_annual_trp);
  __Pyx_XDECREF(__pyx_v_regression_percent);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_sim_y);
  __Pyx_XDECREF(__pyx_v_sim_m);
  __Pyx_XDECREF(__pyx_v_sim_d);
  __Pyx_XDECREF(__pyx_v_sri_regression);
  __Pyx_XDECREF(__pyx_v_simt);
  __Pyx_XDECREF(__pyx_v_urban_leap);
  __Pyx_XDECREF(__pyx_v_urban_year_list);
  __Pyx_XDECREF(__pyx_v_urban_days_in_month);
  __Pyx_XDECREF(__pyx_v_hist_pumping);
  __Pyx_XDECREF(__pyx_v_regression_annual);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_wateryear);
  __Pyx_XDECREF(__pyx_v_year_index);
  __Pyx_XDECREF(__pyx_v_t);
  __Pyx_XDECREF(__pyx_v_metropolitan_demand);
  __Pyx_XDECREF(__pyx_v_metropolitan_adjust);
  __Pyx_XDECREF(__pyx_v_districts);
  __Pyx_XDECREF(__pyx_v_recalc_pumping);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_year_counter);
  __Pyx_XDECREF(__pyx_v_real_ratio);
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_sri_forecast_dowy);
  __Pyx_XDECREF(__pyx_v_pumping_forecast_dowy);
  __Pyx_XDECREF(__pyx_v_pumping_forecast_timeseries);
  __Pyx_XDECREF(__pyx_v_regression_errors);
  __Pyx_XDECREF(__pyx_v_regression_errors_timeseries);
  __Pyx_XDECREF(__pyx_v_counter1);
  __Pyx_XDECREF(__pyx_v_fig);
  __Pyx_XDECREF(__pyx_v_error_changes);
  __Pyx_XDECREF(__pyx_v_pumping_changes);
  __Pyx_XDECREF(__pyx_v_wateryear_day);
  __Pyx_XDECREF(__pyx_v_coef);
  __Pyx_XDECREF(__pyx_v_sri);
  __Pyx_XDECREF(__pyx_v_percent);
  __Pyx_XDECREF(__pyx_v_ax1);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_wateryear_count);
  __Pyx_XDECREF(__pyx_v_day_error_changes);
  __Pyx_XDECREF(__pyx_v_day_pumping_changes);
  __Pyx_XDECREF(__pyx_v_np_list_1_logi);
  __Pyx_XDECREF(__pyx_v_day_error_cleaned);
  __Pyx_XDECREF(__pyx_v_day_pumping_cleaned);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_r);
  __Pyx_XDECREF(__pyx_v_ytd_pumping_int);
  __Pyx_XDECREF(__pyx_v_predicted_annual_demand);
  __Pyx_XDECREF(__pyx_9genexpr11__pyx_v__);
  __Pyx_XDECREF(__pyx_9genexpr12__pyx_v__);
  __Pyx_XDECREF(__pyx_9genexpr13__pyx_v__);
  __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__112 = PyTuple_Pack(86, __pyx_n_s_self, __pyx_n_s_datafile, __pyx_n_s_datafile_cvp, __pyx_n_s_datafile_pumping, __pyx_n_s_df_urban, __pyx_n_s_simulation_dates, __pyx_n_s_urban_dates, __pyx_n_s_start_date, __pyx_n_s_end_date, __pyx_n_s_date_mask, __pyx_n_s_df_urban_monthly_cvp, __pyx_n_s_df_pumping_prediction_control, __pyx_n_s_index_urban, __pyx_n_s_urban_historical_T, __pyx_n_s_index_urban_d, __pyx_n_s_index_urban_m, __pyx_n_s_index_urban_y, __pyx_n_s_index_urban_dowy, __pyx_n_s_urban_startYear, __pyx_n_s_urban_start_regression_year, __pyx_n_s_urban_start_regression, __pyx_n_s_index_urban_water_year, __pyx_n_s_numYears_urban, __pyx_n_s_urban_list, __pyx_n_s_SRI_forecast, __pyx_n_s_regression_annual_hro, __pyx_n_s_regression_annual_trp, __pyx_n_s_regression_percent, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_sim_y, __pyx_n_s_sim_m, __pyx_n_s_sim_d, __pyx_n_s_start_counter, __pyx_n_s_sri_regression, __pyx_n_s_simt, __pyx_n_s_urban_leap, __pyx_n_s_urban_year_list, __pyx_n_s_urban_days_in_month, __pyx_n_s_hist_pumping, __pyx_n_s_regression_annual, __pyx_n_s_m, __pyx_n_s_wateryear, __pyx_n_s_year_index, __pyx_n_s_t, __pyx_n_s_metropolitan_demand, __pyx_n_s_metropolitan_adjust, __pyx_n_s_districts, __pyx_n_s_recalc_pumping, __pyx_n_s_district_object, __pyx_n_s_year_counter, __pyx_n_s_pumping_counter, __pyx_n_s_real_ratio, __pyx_n_s_pump_counter, __pyx_n_s_dowy, __pyx_n_s_sri_forecast_dowy, __pyx_n_s_pumping_forecast_dowy, __pyx_n_s_pumping_forecast_timeseries, __pyx_n_s_regression_errors, __pyx_n_s_regression_errors_timeseries, __pyx_n_s_counter1, __pyx_n_s_fig, __pyx_n_s_error_changes, __pyx_n_s_pumping_changes, __pyx_n_s_wateryear_day, __pyx_n_s_coef, __pyx_n_s_sri, __pyx_n_s_percent, __pyx_n_s_ax1, __pyx_n_s_yy, __pyx_n_s_wateryear_count, __pyx_n_s_pumping_forecast_min, __pyx_n_s_pumping_forecast_max, __pyx_n_s_day_error_changes, __pyx_n_s_day_pumping_changes, __pyx_n_s_np_list_1_logi, __pyx_n_s_day_error_cleaned, __pyx_n_s_day_pumping_cleaned, __pyx_n_s_y, __pyx_n_s_r, __pyx_n_s_ytd_pumping_int, __pyx_n_s_predicted_annual_demand, __pyx_n_s__12, __pyx_n_s__12, __pyx_n_s__12, __pyx_n_s__12); if (unlikely(!__pyx_tuple__112)) __PYX_ERR(0, 1888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__112);
  __Pyx_GIVEREF(__pyx_tuple__112);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_47project_urban, 0, __pyx_n_s_Model_project_urban, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_project_urban, __pyx_t_2) < 0) __PYX_ERR(0, 1888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(4, 0, 86, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__112, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_project_urban, 1888, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 1888, __pyx_L1_error)
 1889:     #########################################################################################
 1890:     ###initializes variables needed for district objects that are pumping plants on branches
 1891: 	###of the california aqueduct (southern california, central coast, and the south bay)
 1892:     #########################################################################################
 1893: 
 1894:     ##This function finds linear regression coefficients between urban CA AQ branch pumpning and delta pumping
 1895: 	##to predict water use in southbay, centralcoast, and socal district objects
 1896: 	##NOTE!!! More detailed MWD/Southern Cal demand data would improve the model
+1897:     df_urban = pd.read_csv(datafile, index_col=0, parse_dates=True)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_datafile);
  __Pyx_GIVEREF(__pyx_v_datafile);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_datafile);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1897, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1897, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_df_urban = __pyx_t_4;
  __pyx_t_4 = 0;
+1898:     if self.model_mode == 'validation':
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1898, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_5) {
/* … */
  }
+1899:       simulation_dates = pd.to_datetime(self.index)
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_pd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_to_datetime); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1899, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_simulation_dates = __pyx_t_4;
    __pyx_t_4 = 0;
+1900:       urban_dates = pd.to_datetime(df_urban.index)
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_to_datetime); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_df_urban, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_urban_dates = __pyx_t_4;
    __pyx_t_4 = 0;
+1901:       start_date = simulation_dates[0]
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_simulation_dates, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_start_date = __pyx_t_4;
    __pyx_t_4 = 0;
+1902:       end_date = simulation_dates[-1]
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_v_simulation_dates, -1L, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_v_end_date = __pyx_t_4;
    __pyx_t_4 = 0;
+1903:       date_mask = (urban_dates >= start_date) & (urban_dates <= end_date)
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_urban_dates, __pyx_v_start_date, Py_GE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1903, __pyx_L1_error)
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_urban_dates, __pyx_v_end_date, Py_LE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1903, __pyx_L1_error)
    __pyx_t_1 = PyNumber_And(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1903, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_date_mask = __pyx_t_1;
    __pyx_t_1 = 0;
+1904:       df_urban = df_urban[date_mask]
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_df_urban, __pyx_v_date_mask); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1904, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_df_urban, __pyx_t_1);
    __pyx_t_1 = 0;
 1905: 
+1906:     df_urban_monthly_cvp = pd.read_csv(datafile_cvp, index_col=0, parse_dates=True)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_pd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_datafile_cvp);
  __Pyx_GIVEREF(__pyx_v_datafile_cvp);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_datafile_cvp);
  __pyx_t_4 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1906, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1906, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1906, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_df_urban_monthly_cvp = __pyx_t_2;
  __pyx_t_2 = 0;
+1907:     df_pumping_prediction_control = pd.read_csv(datafile_pumping, index_col=0, parse_dates=True)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_pd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_read_csv); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyTuple_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_datafile_pumping);
  __Pyx_GIVEREF(__pyx_v_datafile_pumping);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_datafile_pumping);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_index_col, __pyx_int_0) < 0) __PYX_ERR(0, 1907, __pyx_L1_error)
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_parse_dates, Py_True) < 0) __PYX_ERR(0, 1907, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1907, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_df_pumping_prediction_control = __pyx_t_3;
  __pyx_t_3 = 0;
+1908:     index_urban = df_urban.index
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_df_urban, __pyx_n_s_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_index_urban = __pyx_t_3;
  __pyx_t_3 = 0;
+1909:     urban_historical_T = len(df_urban)
  __pyx_t_6 = PyObject_Length(__pyx_v_df_urban); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1909, __pyx_L1_error)
  __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1909, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_urban_historical_T = __pyx_t_3;
  __pyx_t_3 = 0;
+1910:     index_urban_d = index_urban.dayofyear
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_dayofyear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_index_urban_d = __pyx_t_3;
  __pyx_t_3 = 0;
+1911:     index_urban_m = index_urban.month
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1911, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_index_urban_m = __pyx_t_3;
  __pyx_t_3 = 0;
+1912:     index_urban_y = index_urban.year
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_index_urban, __pyx_n_s_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_index_urban_y = __pyx_t_3;
  __pyx_t_3 = 0;
+1913:     index_urban_dowy = water_day(index_urban_d, index_urban_y)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_water_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1913, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_index_urban_d, __pyx_v_index_urban_y};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1913, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_2, __pyx_v_index_urban_d, __pyx_v_index_urban_y};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1913, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  {
    __pyx_t_4 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_INCREF(__pyx_v_index_urban_d);
    __Pyx_GIVEREF(__pyx_v_index_urban_d);
    PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_v_index_urban_d);
    __Pyx_INCREF(__pyx_v_index_urban_y);
    __Pyx_GIVEREF(__pyx_v_index_urban_y);
    PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_v_index_urban_y);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_index_urban_dowy = __pyx_t_3;
  __pyx_t_3 = 0;
+1914:     urban_startYear = index_urban_y[0]
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_index_urban_y, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1914, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_urban_startYear = __pyx_t_3;
  __pyx_t_3 = 0;
+1915:     urban_start_regression_year = 2003
  __Pyx_INCREF(__pyx_int_2003);
  __pyx_v_urban_start_regression_year = __pyx_int_2003;
+1916:     urban_start_regression = int(urban_start_regression_year - urban_startYear - 1)
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_urban_start_regression_year, __pyx_v_urban_startYear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1916, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_urban_start_regression = __pyx_t_3;
  __pyx_t_3 = 0;
+1917:     index_urban_water_year = water_year(index_urban_m, index_urban_y, urban_startYear)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_water_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1917, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_index_urban_m, __pyx_v_index_urban_y, __pyx_v_urban_startYear};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_index_urban_m, __pyx_v_index_urban_y, __pyx_v_urban_startYear};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  {
    __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(__pyx_v_index_urban_m);
    __Pyx_GIVEREF(__pyx_v_index_urban_m);
    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_v_index_urban_m);
    __Pyx_INCREF(__pyx_v_index_urban_y);
    __Pyx_GIVEREF(__pyx_v_index_urban_y);
    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_v_index_urban_y);
    __Pyx_INCREF(__pyx_v_urban_startYear);
    __Pyx_GIVEREF(__pyx_v_urban_startYear);
    PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, __pyx_v_urban_startYear);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_index_urban_water_year = __pyx_t_3;
  __pyx_t_3 = 0;
+1918:     numYears_urban = index_urban_y[urban_historical_T - 1] - index_urban_y[0]
  __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_urban_historical_T, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_y, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_index_urban_y, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_numYears_urban = __pyx_t_2;
  __pyx_t_2 = 0;
+1919:     urban_list = [self.socal, self.centralcoast, self.southbay]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1919, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_1);
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_v_urban_list = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
+1920:     self.observed_hro = df_urban['HRO_pump'].values*cfs_tafd
  __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_HRO_pump); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro, __pyx_t_3) < 0) __PYX_ERR(0, 1920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1921:     self.observed_trp = df_urban['TRP_pump'].values*cfs_tafd
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_TRP_pump); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_values); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyNumber_Multiply(__pyx_t_4, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_observed_trp, __pyx_t_1) < 0) __PYX_ERR(0, 1921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1922:     self.observed_hro_pred = df_pumping_prediction_control['DEL_SWP_allocation']
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_pumping_prediction_control, __pyx_n_u_DEL_SWP_allocation); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred, __pyx_t_1) < 0) __PYX_ERR(0, 1922, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1923:     SRI_forecast = df_urban['DEL_SCINDEX'].values
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban, __pyx_n_u_DEL_SCINDEX); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_values); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_SRI_forecast = __pyx_t_3;
  __pyx_t_3 = 0;
+1924:     regression_annual_hro = [0.0 for _ in range(numYears_urban)]
  { /* enter inner scope */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1924, __pyx_L6_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1924, __pyx_L6_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1924, __pyx_L6_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1924, __pyx_L6_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1924, __pyx_L6_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1924, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1924, __pyx_L6_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1924, __pyx_L6_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_8(__pyx_t_4);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1924, __pyx_L6_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr11__pyx_v__, __pyx_t_1);
      __pyx_t_1 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1924, __pyx_L6_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF(__pyx_9genexpr11__pyx_v__); __pyx_9genexpr11__pyx_v__ = 0;
    goto __pyx_L9_exit_scope;
    __pyx_L6_error:;
    __Pyx_XDECREF(__pyx_9genexpr11__pyx_v__); __pyx_9genexpr11__pyx_v__ = 0;
    goto __pyx_L1_error;
    __pyx_L9_exit_scope:;
  } /* exit inner scope */
  __pyx_v_regression_annual_hro = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1925:     regression_annual_trp = [0.0 for _ in range(numYears_urban)]
  { /* enter inner scope */
    __pyx_t_3 = PyList_New(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1925, __pyx_L12_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1925, __pyx_L12_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1925, __pyx_L12_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1925, __pyx_L12_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1925, __pyx_L12_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1925, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1925, __pyx_L12_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1925, __pyx_L12_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_8(__pyx_t_1);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1925, __pyx_L12_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_9genexpr12__pyx_v__, __pyx_t_4);
      __pyx_t_4 = 0;
      if (unlikely(__Pyx_ListComp_Append(__pyx_t_3, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1925, __pyx_L12_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF(__pyx_9genexpr12__pyx_v__); __pyx_9genexpr12__pyx_v__ = 0;
    goto __pyx_L15_exit_scope;
    __pyx_L12_error:;
    __Pyx_XDECREF(__pyx_9genexpr12__pyx_v__); __pyx_9genexpr12__pyx_v__ = 0;
    goto __pyx_L1_error;
    __pyx_L15_exit_scope:;
  } /* exit inner scope */
  __pyx_v_regression_annual_trp = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1926:     regression_percent = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1926, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_regression_percent = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1927:     for x in urban_list:
  __pyx_t_3 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1927, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1928:       regression_percent[x] = np.zeros((365,numYears_urban))
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_int_365);
    __Pyx_GIVEREF(__pyx_int_365);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365);
    __Pyx_INCREF(__pyx_v_numYears_urban);
    __Pyx_GIVEREF(__pyx_v_numYears_urban);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_numYears_urban);
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_regression_percent, __pyx_v_x, __pyx_t_1) < 0)) __PYX_ERR(0, 1928, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1929:       x.delivery_percent_coefficient = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1929, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient, __pyx_t_1) < 0) __PYX_ERR(0, 1929, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1930:       x.delivery_percent_coefficient[0] = np.zeros((365,4))
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_tuple__46) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_tuple__46);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_4, 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 1930, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
/* … */
  __pyx_tuple__46 = PyTuple_Pack(2, __pyx_int_365, __pyx_int_4); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 1930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
+1931:     for x in self.city_list:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1931, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1931, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1931, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1931, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1931, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1931, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1931, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_8(__pyx_t_1);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1931, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+1932:       x.delivery_percent_coefficient = {}
    __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1932, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient, __pyx_t_3) < 0) __PYX_ERR(0, 1932, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1933:       regression_percent[x] = {}
    __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1933, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyDict_SetItem(__pyx_v_regression_percent, __pyx_v_x, __pyx_t_3) < 0)) __PYX_ERR(0, 1933, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1934:       for xx in x.district_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1934, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1934, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1934, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1934, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1934, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1934, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1934, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_11(__pyx_t_4);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1934, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1935:         x.delivery_percent_coefficient[xx] = np.zeros((365,4))
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_tuple__46) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_tuple__46);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_xx, __pyx_t_3) < 0)) __PYX_ERR(0, 1935, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1936:         regression_percent[x][xx] = np.zeros((365,numYears_urban))
      __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_int_365);
      __Pyx_GIVEREF(__pyx_int_365);
      PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_365);
      __Pyx_INCREF(__pyx_v_numYears_urban);
      __Pyx_GIVEREF(__pyx_v_numYears_urban);
      PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_v_numYears_urban);
      __pyx_t_12 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_3 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_12, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_9);
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_xx, __pyx_t_3) < 0)) __PYX_ERR(0, 1936, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 1937: 
+1938:     sim_y = self.index.year
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sim_y = __pyx_t_4;
  __pyx_t_4 = 0;
+1939:     sim_m = self.index.month
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1939, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_sim_m = __pyx_t_1;
  __pyx_t_1 = 0;
+1940:     sim_d = self.index.day
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1940, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_sim_d = __pyx_t_4;
  __pyx_t_4 = 0;
+1941:     start_counter = 0
  __pyx_v_start_counter = 0;
+1942:     sri_regression = np.zeros(numYears_urban - urban_start_regression)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_4 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_sri_regression = __pyx_t_4;
  __pyx_t_4 = 0;
+1943:     for simt in range(0, self.T):
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_4);
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1943, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1943, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1943, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1943, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1943, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_simt, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1944:       if sim_y[simt] == urban_start_regression_year:
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_sim_y, __pyx_v_simt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_v_urban_start_regression_year, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1944, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1944, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
/* … */
    }
+1945:         start_counter = 1
      __pyx_v_start_counter = 1;
+1946:       if start_counter == 1 and sim_m[simt] == 9 and sim_d[simt] == 1:
    __pyx_t_13 = ((__pyx_v_start_counter == 1) != 0);
    if (__pyx_t_13) {
    } else {
      __pyx_t_5 = __pyx_t_13;
      goto __pyx_L26_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_sim_m, __pyx_v_simt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_13) {
    } else {
      __pyx_t_5 = __pyx_t_13;
      goto __pyx_L26_bool_binop_done;
    }
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_sim_d, __pyx_v_simt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_13 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 1946, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __pyx_t_13;
    __pyx_L26_bool_binop_done:;
    if (__pyx_t_5) {
/* … */
    }
+1947:         sri_regression[sim_y[simt] - urban_start_regression_year] = self.forecastSRI[simt]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1947, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_simt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1947, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_sim_y, __pyx_v_simt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1947, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_urban_start_regression_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1947, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_sri_regression, __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 1947, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1948:     urban_leap = leap(np.arange(min(index_urban_y), max(index_urban_y) + 2))
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_leap); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_arange); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_12 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_t_14 = __Pyx_PyInt_AddObjC(__pyx_t_12, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __pyx_t_12 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_t_14};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[3] = {__pyx_t_12, __pyx_t_1, __pyx_t_14};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_t_14);
    __pyx_t_1 = 0;
    __pyx_t_14 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_3 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_9, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1948, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_urban_leap = __pyx_t_3;
  __pyx_t_3 = 0;
+1949:     urban_year_list = np.arange(min(index_urban_y), max(index_urban_y) + 2)
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_arange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_min, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_max, __pyx_v_index_urban_y); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_15 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_2, 2, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1949, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_9)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_15};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_4, __pyx_t_15};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_9) {
      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_9); __pyx_t_9 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_7, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_15);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_7, __pyx_t_15);
    __pyx_t_4 = 0;
    __pyx_t_15 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_urban_year_list = __pyx_t_3;
  __pyx_t_3 = 0;
+1950:     urban_days_in_month = days_in_month(urban_year_list, urban_leap)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_14 = NULL;
  __pyx_t_7 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_7 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_urban_year_list, __pyx_v_urban_leap};
    __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_14, __pyx_v_urban_year_list, __pyx_v_urban_leap};
    __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_3);
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_INCREF(__pyx_v_urban_year_list);
    __Pyx_GIVEREF(__pyx_v_urban_year_list);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_v_urban_year_list);
    __Pyx_INCREF(__pyx_v_urban_leap);
    __Pyx_GIVEREF(__pyx_v_urban_leap);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_v_urban_leap);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_15, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_urban_days_in_month = __pyx_t_3;
  __pyx_t_3 = 0;
 1951: 
+1952:     hist_pumping = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1952, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_hist_pumping = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1953:     regression_annual = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_regression_annual = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1954:     for x in urban_list:
  __pyx_t_3 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1954, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1955:       hist_pumping[x] = [float(_) for _ in df_urban[x.key+ '_pump'].values]
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1955, __pyx_L33_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1955, __pyx_L33_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_14 = PyNumber_Add(__pyx_t_15, __pyx_n_u_pump); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1955, __pyx_L33_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_df_urban, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1955, __pyx_L33_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_values); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1955, __pyx_L33_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
        __pyx_t_15 = __pyx_t_14; __Pyx_INCREF(__pyx_t_15); __pyx_t_10 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1955, __pyx_L33_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_8 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1955, __pyx_L33_error)
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_15))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_14 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_10); __Pyx_INCREF(__pyx_t_14); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1955, __pyx_L33_error)
            #else
            __pyx_t_14 = PySequence_ITEM(__pyx_t_15, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1955, __pyx_L33_error)
            __Pyx_GOTREF(__pyx_t_14);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_10); __Pyx_INCREF(__pyx_t_14); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1955, __pyx_L33_error)
            #else
            __pyx_t_14 = PySequence_ITEM(__pyx_t_15, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1955, __pyx_L33_error)
            __Pyx_GOTREF(__pyx_t_14);
            #endif
          }
        } else {
          __pyx_t_14 = __pyx_t_8(__pyx_t_15);
          if (unlikely(!__pyx_t_14)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1955, __pyx_L33_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_14);
        }
        __Pyx_XDECREF_SET(__pyx_9genexpr13__pyx_v__, __pyx_t_14);
        __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyNumber_Float(__pyx_9genexpr13__pyx_v__); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1955, __pyx_L33_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_t_14))) __PYX_ERR(0, 1955, __pyx_L33_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF(__pyx_9genexpr13__pyx_v__); __pyx_9genexpr13__pyx_v__ = 0;
      goto __pyx_L36_exit_scope;
      __pyx_L33_error:;
      __Pyx_XDECREF(__pyx_9genexpr13__pyx_v__); __pyx_9genexpr13__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L36_exit_scope:;
    } /* exit inner scope */
    if (unlikely(PyDict_SetItem(__pyx_v_hist_pumping, __pyx_v_x, __pyx_t_2) < 0)) __PYX_ERR(0, 1955, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1956:       regression_annual[x] = [0.0 for _ in range(numYears_urban)]
    { /* enter inner scope */
      __pyx_t_2 = PyList_New(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1956, __pyx_L39_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_15 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1956, __pyx_L39_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) {
        __pyx_t_14 = __pyx_t_15; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1956, __pyx_L39_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_8 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1956, __pyx_L39_error)
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_14))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_15); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1956, __pyx_L39_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1956, __pyx_L39_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_15); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1956, __pyx_L39_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1956, __pyx_L39_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          }
        } else {
          __pyx_t_15 = __pyx_t_8(__pyx_t_14);
          if (unlikely(!__pyx_t_15)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 1956, __pyx_L39_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_15);
        }
        __Pyx_XDECREF_SET(__pyx_9genexpr14__pyx_v__, __pyx_t_15);
        __pyx_t_15 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_2, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 1956, __pyx_L39_error)
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__); __pyx_9genexpr14__pyx_v__ = 0;
      goto __pyx_L42_exit_scope;
      __pyx_L39_error:;
      __Pyx_XDECREF(__pyx_9genexpr14__pyx_v__); __pyx_9genexpr14__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L42_exit_scope:;
    } /* exit inner scope */
    if (unlikely(PyDict_SetItem(__pyx_v_regression_annual, __pyx_v_x, __pyx_t_2) < 0)) __PYX_ERR(0, 1956, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1957: 
+1958:     for xx in range(0, len(hist_pumping[self.southbay])):
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1958, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1958, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1958, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1958, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1958, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1959:       m = index_urban_m[xx]
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_m, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_m, __pyx_t_2);
    __pyx_t_2 = 0;
+1960:       wateryear = index_urban_water_year[xx]
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_2);
    __pyx_t_2 = 0;
+1961:       year_index = index_urban_y[xx]-urban_startYear
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_y, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_14 = PyNumber_Subtract(__pyx_t_2, __pyx_v_urban_startYear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1961, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_year_index, __pyx_t_14);
    __pyx_t_14 = 0;
+1962:       hist_pumping[self.southbay][xx] += df_urban_monthly_cvp['PCH_pump'][m-1 + wateryear*12]*1000.0/urban_days_in_month[year_index][m-1]
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_INCREF(__pyx_v_xx);
    __pyx_t_14 = __pyx_v_xx;
    __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_df_urban_monthly_cvp, __pyx_n_u_PCH_pump); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_wateryear, __pyx_int_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = PyNumber_Add(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = PyNumber_Multiply(__pyx_t_1, __pyx_float_1000_0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_urban_days_in_month, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_12, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_14, __pyx_t_9) < 0)) __PYX_ERR(0, 1962, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1963: 
+1964:     for t in range(0,urban_historical_T):
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_INCREF(__pyx_v_urban_historical_T);
  __Pyx_GIVEREF(__pyx_v_urban_historical_T);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_urban_historical_T);
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1964, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1964, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1964, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1964, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1964, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1964, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1964, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1965:       wateryear = index_urban_water_year[t]
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_2);
    __pyx_t_2 = 0;
 1966: 
 1967: 	  ##Find annual pumping at each branch (and @ delta)
+1968:       regression_annual_hro[wateryear] += self.observed_hro[t]
    __Pyx_INCREF(__pyx_v_wateryear);
    __pyx_t_2 = __pyx_v_wateryear;
    __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_regression_annual_hro, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyObject_SetItem(__pyx_v_regression_annual_hro, __pyx_t_2, __pyx_t_9) < 0)) __PYX_ERR(0, 1968, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1969:       regression_annual_trp[wateryear] += self.observed_trp[t]
    __Pyx_INCREF(__pyx_v_wateryear);
    __pyx_t_2 = __pyx_v_wateryear;
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_regression_annual_trp, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_trp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(PyObject_SetItem(__pyx_v_regression_annual_trp, __pyx_t_2, __pyx_t_4) < 0)) __PYX_ERR(0, 1969, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1970:       for x in urban_list:
    __pyx_t_2 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0;
    for (;;) {
      if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1970, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1971:         regression_annual[x][wateryear] += hist_pumping[x][t]/1000.0
      __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_v_wateryear);
      __pyx_t_14 = __pyx_v_wateryear;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_t); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_12, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_14, __pyx_t_12) < 0)) __PYX_ERR(0, 1971, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 1972: 
 1973: 
 1974: 
 1975: 
+1976:     for x in urban_list:
  __pyx_t_3 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1976, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1977:       x.pumping = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1977, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 1977, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1978:       x.pumping[0] = hist_pumping[x]
    __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_hist_pumping, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_4, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 1978, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1979:       x.annual_pumping = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 1979, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1980:       x.annual_pumping[0] = regression_annual[x]
    __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_4, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 1980, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 1981:       # for xx in range(0, len(hist_pumping[x])):
 1982:       #   x.pumping.append(hist_pumping[x][xx] * 1.0)
 1983:       # for xx in range(0, len(regression_annual[x])):
 1984:       #   x.annual_pumping.append(regression_annual[x][xx] * 1.0)
 1985: 
+1986:     metropolitan_demand = [584.0, 352.0, 681.0, 1252.0, 1075.5, 1408.8, 1592.0, 1865.7, 1431.1, 1501.6, 1646.8, 1077.5, 1020.2, 1123.1, 1335.7, 1065.6, 989.1, 476.8, 704.8, 1106.4]
  __pyx_t_3 = PyList_New(20); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1986, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_584_0);
  __Pyx_GIVEREF(__pyx_float_584_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_584_0);
  __Pyx_INCREF(__pyx_float_352_0);
  __Pyx_GIVEREF(__pyx_float_352_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_352_0);
  __Pyx_INCREF(__pyx_float_681_0);
  __Pyx_GIVEREF(__pyx_float_681_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_681_0);
  __Pyx_INCREF(__pyx_float_1252_0);
  __Pyx_GIVEREF(__pyx_float_1252_0);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_float_1252_0);
  __Pyx_INCREF(__pyx_float_1075_5);
  __Pyx_GIVEREF(__pyx_float_1075_5);
  PyList_SET_ITEM(__pyx_t_3, 4, __pyx_float_1075_5);
  __Pyx_INCREF(__pyx_float_1408_8);
  __Pyx_GIVEREF(__pyx_float_1408_8);
  PyList_SET_ITEM(__pyx_t_3, 5, __pyx_float_1408_8);
  __Pyx_INCREF(__pyx_float_1592_0);
  __Pyx_GIVEREF(__pyx_float_1592_0);
  PyList_SET_ITEM(__pyx_t_3, 6, __pyx_float_1592_0);
  __Pyx_INCREF(__pyx_float_1865_7);
  __Pyx_GIVEREF(__pyx_float_1865_7);
  PyList_SET_ITEM(__pyx_t_3, 7, __pyx_float_1865_7);
  __Pyx_INCREF(__pyx_float_1431_1);
  __Pyx_GIVEREF(__pyx_float_1431_1);
  PyList_SET_ITEM(__pyx_t_3, 8, __pyx_float_1431_1);
  __Pyx_INCREF(__pyx_float_1501_6);
  __Pyx_GIVEREF(__pyx_float_1501_6);
  PyList_SET_ITEM(__pyx_t_3, 9, __pyx_float_1501_6);
  __Pyx_INCREF(__pyx_float_1646_8);
  __Pyx_GIVEREF(__pyx_float_1646_8);
  PyList_SET_ITEM(__pyx_t_3, 10, __pyx_float_1646_8);
  __Pyx_INCREF(__pyx_float_1077_5);
  __Pyx_GIVEREF(__pyx_float_1077_5);
  PyList_SET_ITEM(__pyx_t_3, 11, __pyx_float_1077_5);
  __Pyx_INCREF(__pyx_float_1020_2);
  __Pyx_GIVEREF(__pyx_float_1020_2);
  PyList_SET_ITEM(__pyx_t_3, 12, __pyx_float_1020_2);
  __Pyx_INCREF(__pyx_float_1123_1);
  __Pyx_GIVEREF(__pyx_float_1123_1);
  PyList_SET_ITEM(__pyx_t_3, 13, __pyx_float_1123_1);
  __Pyx_INCREF(__pyx_float_1335_7);
  __Pyx_GIVEREF(__pyx_float_1335_7);
  PyList_SET_ITEM(__pyx_t_3, 14, __pyx_float_1335_7);
  __Pyx_INCREF(__pyx_float_1065_6);
  __Pyx_GIVEREF(__pyx_float_1065_6);
  PyList_SET_ITEM(__pyx_t_3, 15, __pyx_float_1065_6);
  __Pyx_INCREF(__pyx_float_989_1);
  __Pyx_GIVEREF(__pyx_float_989_1);
  PyList_SET_ITEM(__pyx_t_3, 16, __pyx_float_989_1);
  __Pyx_INCREF(__pyx_float_476_8);
  __Pyx_GIVEREF(__pyx_float_476_8);
  PyList_SET_ITEM(__pyx_t_3, 17, __pyx_float_476_8);
  __Pyx_INCREF(__pyx_float_704_8);
  __Pyx_GIVEREF(__pyx_float_704_8);
  PyList_SET_ITEM(__pyx_t_3, 18, __pyx_float_704_8);
  __Pyx_INCREF(__pyx_float_1106_4);
  __Pyx_GIVEREF(__pyx_float_1106_4);
  PyList_SET_ITEM(__pyx_t_3, 19, __pyx_float_1106_4);
  __pyx_v_metropolitan_demand = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+1987:     if self.model_mode == 'validation':
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_3, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
/* … */
    goto __pyx_L51;
  }
+1988:       metropolitan_adjust = self.starting_year - 1996
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_3, __pyx_int_1996, 0x7CC, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1988, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_metropolitan_adjust = __pyx_t_2;
    __pyx_t_2 = 0;
 1989:     else:
+1990:       metropolitan_adjust = 0
  /*else*/ {
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_metropolitan_adjust = __pyx_int_0;
  }
  __pyx_L51:;
 1991: 
+1992:     for x in self.city_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_3 = __pyx_t_2; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1992, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 1992, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1992, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1992, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 1992, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1992, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_8(__pyx_t_3);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 1992, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+1993:       x.pumping = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 1993, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1994:       x.annual_pumping = {}
    __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 1994, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1995:       for districts in x.district_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_4 = __pyx_t_2; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 1995, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 1995, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1995, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1995, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 1995, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1995, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_11(__pyx_t_4);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 1995, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_districts, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+1996:         if x.key == "MET":
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1996, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_MET, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 1996, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_5) {
/* … */
        goto __pyx_L56;
      }
+1997:           x.pumping[districts] = np.zeros(urban_historical_T)
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1997, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1997, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
          }
        }
        __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_14, __pyx_v_urban_historical_T) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_urban_historical_T);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1997, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1997, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_districts, __pyx_t_2) < 0)) __PYX_ERR(0, 1997, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1998:           x.annual_pumping[districts] = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1998, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1998, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        __pyx_t_2 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_12, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1998, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1998, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_districts, __pyx_t_2) < 0)) __PYX_ERR(0, 1998, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+1999:           recalc_pumping = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 1999, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 1999, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
          }
        }
        __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_14, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 1999, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF_SET(__pyx_v_recalc_pumping, __pyx_t_2);
        __pyx_t_2 = 0;
+2000:           district_object = self.district_keys[districts]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2000, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2000, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_12);
        __pyx_t_12 = 0;
+2001:           for year_counter in range(0, len(x.annual_pumping[districts])):
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_16 = PyObject_Length(__pyx_t_2); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);
        __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
          __pyx_t_12 = __pyx_t_2; __Pyx_INCREF(__pyx_t_12); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_16 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2001, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_17 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2001, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_2); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2001, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2001, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            } else {
              if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_2); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2001, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2001, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            }
          } else {
            __pyx_t_2 = __pyx_t_17(__pyx_t_12);
            if (unlikely(!__pyx_t_2)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2001, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_2);
          __pyx_t_2 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2002:             if districts == "SOC":
          __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_districts, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2002, __pyx_L1_error)
          if (__pyx_t_5) {
/* … */
            goto __pyx_L59;
          }
+2003:               x.annual_pumping[districts][year_counter] = metropolitan_demand[year_counter + metropolitan_adjust]
            __pyx_t_2 = PyNumber_Add(__pyx_v_year_counter, __pyx_v_metropolitan_adjust); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_metropolitan_demand, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_year_counter, __pyx_t_14) < 0)) __PYX_ERR(0, 2003, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 2004:             else:
+2005:               x.annual_pumping[districts][year_counter] = 0.0
          /*else*/ {
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2005, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2005, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_year_counter, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2005, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          }
          __pyx_L59:;
+2006:           if districts == "SOC":
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_districts, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2006, __pyx_L1_error)
        if (__pyx_t_5) {
/* … */
          goto __pyx_L60;
        }
+2007:             for pumping_counter in range(0, len(x.pumping[districts])):
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_16 = PyObject_Length(__pyx_t_15); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2007, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_18 = __pyx_t_16;
          for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
            __pyx_v_pumping_counter = __pyx_t_19;
+2008:               wateryear = index_urban_water_year[pumping_counter]
            __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_index_urban_water_year, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2008, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_15);
            __pyx_t_15 = 0;
+2009:               real_ratio = x.annual_pumping[districts][wateryear]/(district_object.annual_pumping[0][wateryear]*x.pump_out_fraction[districts])
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_Multiply(__pyx_t_12, __pyx_t_2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2009, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_XDECREF_SET(__pyx_v_real_ratio, __pyx_t_2);
            __pyx_t_2 = 0;
+2010:               x.pumping[districts][pumping_counter] = district_object.pumping[0][pumping_counter]*x.pump_out_fraction[districts]*real_ratio
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_14, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_Multiply(__pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_14, __pyx_v_real_ratio); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_pumping_counter, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2010, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2011:               recalc_pumping[wateryear] += x.pumping[districts][pumping_counter]
            __Pyx_INCREF(__pyx_v_wateryear);
            __pyx_t_15 = __pyx_v_wateryear;
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_recalc_pumping, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_12, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(PyObject_SetItem(__pyx_v_recalc_pumping, __pyx_t_15, __pyx_t_12) < 0)) __PYX_ERR(0, 2011, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          }
 2012:           else:
+2013:             for pumping_counter in range(0, len(x.pumping[districts])):
        /*else*/ {
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2013, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2013, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_16 = PyObject_Length(__pyx_t_12); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2013, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_18 = __pyx_t_16;
          for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
            __pyx_v_pumping_counter = __pyx_t_19;
+2014:               x.pumping[districts][pumping_counter] = district_object.pumping[0][pumping_counter]*x.pump_out_fraction[districts]
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_15, __pyx_v_pumping_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_districts); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_12, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (unlikely(__Pyx_SetItemInt(__pyx_t_12, __pyx_v_pumping_counter, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2014, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          }
        }
        __pyx_L60:;
 2015:         else:
+2016:           x.pumping[districts] = np.zeros(urban_historical_T)
      /*else*/ {
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        __pyx_t_15 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_12, __pyx_v_urban_historical_T) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_urban_historical_T);
        __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_districts, __pyx_t_15) < 0)) __PYX_ERR(0, 2016, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2017:           x.annual_pumping[districts] = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2017, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2017, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
          }
        }
        __pyx_t_15 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_14, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2017, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2017, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_districts, __pyx_t_15) < 0)) __PYX_ERR(0, 2017, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+2018:           district_object = self.district_keys[districts]
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2018, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2018, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_12);
        __pyx_t_12 = 0;
 2019: 
+2020:           for pump_counter in range(0,len(x.pumping[districts])):
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2020, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2020, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_16 = PyObject_Length(__pyx_t_15); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2020, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_18 = __pyx_t_16;
        for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
          __pyx_v_pump_counter = __pyx_t_19;
+2021:             x.pumping[districts][pump_counter] += district_object.pumping[0][pump_counter]*x.pump_out_fraction[districts]
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_districts); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_20 = __pyx_v_pump_counter;
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_12, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_districts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_14, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_12, __pyx_t_20, __pyx_t_9, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2021, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        }
+2022:           for year_counter in range(0, len(x.annual_pumping[districts])):
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_districts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_16 = PyObject_Length(__pyx_t_9); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_GIVEREF(__pyx_int_0);
        PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_t_9);
        __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2022, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
          __pyx_t_12 = __pyx_t_9; __Pyx_INCREF(__pyx_t_12); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_16 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2022, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_17 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2022, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_9); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2022, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2022, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            } else {
              if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_16); __Pyx_INCREF(__pyx_t_9); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2022, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2022, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            }
          } else {
            __pyx_t_9 = __pyx_t_17(__pyx_t_12);
            if (unlikely(!__pyx_t_9)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2022, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_9);
          }
          __Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_9);
          __pyx_t_9 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
      __pyx_L56:;
+2023:             x.annual_pumping[districts][year_counter] +=  district_object.annual_pumping[0][year_counter]*x.pump_out_fraction[districts]
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_INCREF(__pyx_v_year_counter);
          __pyx_t_9 = __pyx_v_year_counter;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_9); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_14, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_counter); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_districts); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Multiply(__pyx_t_14, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_9, __pyx_t_21) < 0)) __PYX_ERR(0, 2023, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2024: 
+2025:     for x in self.city_list:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2025, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2025, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2025, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2025, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2025, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2025, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2026:       for districts in x.district_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_12 = __pyx_t_3; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_11 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2026, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2026, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2026, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_11(__pyx_t_12);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2026, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_districts, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2027:         recalc_pumping = np.zeros(numYears_urban)
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
        }
      }
      __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_2, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_numYears_urban);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_recalc_pumping, __pyx_t_3);
      __pyx_t_3 = 0;
+2028:         district_object = self.district_keys[districts]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_districts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_9);
      __pyx_t_9 = 0;
+2029:         for pump_counter in range(0, len(x.pumping[districts])):
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_districts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_16 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2029, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_18 = __pyx_t_16;
      for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
        __pyx_v_pump_counter = __pyx_t_19;
+2030:           wateryear = index_urban_water_year[pump_counter]
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_index_urban_water_year, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3);
        __pyx_t_3 = 0;
+2031:           district_object.pumping[0][pump_counter] -= x.pumping[districts][pump_counter]
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_20 = __pyx_v_pump_counter;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_districts); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_21, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_t_20, __pyx_t_21, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2031, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2032:           if district_object.pumping[0][pump_counter] < 0.0:
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_21, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyObject_RichCompare(__pyx_t_9, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2032, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2032, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (__pyx_t_5) {
/* … */
        }
+2033:             x.pumping[districts][pump_counter] += district_object.pumping[0][pump_counter]
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_districts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_20 = __pyx_v_pump_counter;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, __pyx_t_20, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_9, __pyx_t_20, __pyx_t_3, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2033, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2034:             district_object.pumping[0][pump_counter] = 0.0
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_pumping); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2034, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2034, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_pump_counter, __pyx_float_0_0, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2034, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2035:           recalc_pumping[wateryear] += x.pumping[districts][pump_counter]
        __Pyx_INCREF(__pyx_v_wateryear);
        __pyx_t_3 = __pyx_v_wateryear;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_recalc_pumping, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_districts); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_21, __pyx_v_pump_counter, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyObject_SetItem(__pyx_v_recalc_pumping, __pyx_t_3, __pyx_t_21) < 0)) __PYX_ERR(0, 2035, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
 2036: 
+2037:         for year_counter in range(0, len(x.annual_pumping[districts])):
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_districts); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_16 = PyObject_Length(__pyx_t_21); if (unlikely(__pyx_t_16 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = PyInt_FromSsize_t(__pyx_t_16); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_21);
      __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2037, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
        __pyx_t_3 = __pyx_t_21; __Pyx_INCREF(__pyx_t_3); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2037, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_17 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2037, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_16); __Pyx_INCREF(__pyx_t_21); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2037, __pyx_L1_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_3, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2037, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_16); __Pyx_INCREF(__pyx_t_21); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2037, __pyx_L1_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_3, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2037, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          }
        } else {
          __pyx_t_21 = __pyx_t_17(__pyx_t_3);
          if (unlikely(!__pyx_t_21)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2037, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_21);
        }
        __Pyx_XDECREF_SET(__pyx_v_year_counter, __pyx_t_21);
        __pyx_t_21 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+2038:           district_object.annual_pumping[0][year_counter] -= x.annual_pumping[districts][year_counter]
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_21, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_INCREF(__pyx_v_year_counter);
        __pyx_t_21 = __pyx_v_year_counter;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_year_counter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = PyNumber_InPlaceSubtract(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_21, __pyx_t_15) < 0)) __PYX_ERR(0, 2038, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2039:           if district_object.annual_pumping[0][year_counter] < 0.0:
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2039, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2039, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_year_counter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2039, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2039, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2039, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (__pyx_t_5) {
/* … */
        }
+2040:             x.annual_pumping[districts][year_counter] += district_object.annual_pumping[0][year_counter]
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_districts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_INCREF(__pyx_v_year_counter);
          __pyx_t_21 = __pyx_v_year_counter;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_year_counter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_21, __pyx_t_9) < 0)) __PYX_ERR(0, 2040, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2041:             district_object.annual_pumping[0][year_counter] = 0.0
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2041, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2041, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_year_counter, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2041, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2042: 
+2043:     for x in urban_list:
  __pyx_t_4 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_12 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2043, __pyx_L1_error)
    #else
    __pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12);
    __pyx_t_12 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2044:       for t in range(0, urban_historical_T):
    __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0);
    __Pyx_INCREF(__pyx_v_urban_historical_T);
    __Pyx_GIVEREF(__pyx_v_urban_historical_T);
    PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_urban_historical_T);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_12 = __pyx_t_3; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2044, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2044, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2044, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2044, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2044, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2044, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_12);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2044, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2045:         wateryear = index_urban_water_year[t]
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3);
      __pyx_t_3 = 0;
+2046:         dowy = index_urban_dowy[t]
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_3);
      __pyx_t_3 = 0;
+2047:         regression_percent[x][dowy][wateryear] = x.annual_pumping[0][wateryear]/self.observed_hro_pred[t]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_wateryear, __pyx_t_21) < 0)) __PYX_ERR(0, 2047, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2048: 
+2049:     for x in self.city_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2049, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2049, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_12))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2049, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2049, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2049, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2049, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_12);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2049, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2050:       for xx in x.district_list:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2050, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_21 = __pyx_t_4; __Pyx_INCREF(__pyx_t_21); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2050, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_11 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2050, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_21))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2050, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_21, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2050, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_21, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_11(__pyx_t_21);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2050, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2051:         for t in range(0, urban_historical_T):
      __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2051, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
      __Pyx_INCREF(__pyx_v_urban_historical_T);
      __Pyx_GIVEREF(__pyx_v_urban_historical_T);
      PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_urban_historical_T);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2051, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_17 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2051, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2051, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2051, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_3); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2051, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2051, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          }
        } else {
          __pyx_t_3 = __pyx_t_17(__pyx_t_4);
          if (unlikely(!__pyx_t_3)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2051, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2052:           wateryear = index_urban_water_year[t]
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2052, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_3);
        __pyx_t_3 = 0;
+2053:           dowy = index_urban_dowy[t]
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2053, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_3);
        __pyx_t_3 = 0;
+2054:           regression_percent[x][xx][dowy][wateryear] = x.annual_pumping[xx][wateryear]/self.observed_hro_pred[t]
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_wateryear, __pyx_t_2) < 0)) __PYX_ERR(0, 2054, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2055:           #regression_percent[x][xx][y] = x.annual_pumping[xx][y]	
 2056: 
 2057: 
+2058:     sri_forecast_dowy = np.zeros((365,numYears_urban))
  __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_INCREF(__pyx_int_365);
  __Pyx_GIVEREF(__pyx_int_365);
  PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_int_365);
  __Pyx_INCREF(__pyx_v_numYears_urban);
  __Pyx_GIVEREF(__pyx_v_numYears_urban);
  PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_v_numYears_urban);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_21);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2058, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_sri_forecast_dowy = __pyx_t_12;
  __pyx_t_12 = 0;
+2059:     pumping_forecast_dowy = np.zeros((365, numYears_urban))
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_INCREF(__pyx_int_365);
  __Pyx_GIVEREF(__pyx_int_365);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365);
  __Pyx_INCREF(__pyx_v_numYears_urban);
  __Pyx_GIVEREF(__pyx_v_numYears_urban);
  PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_numYears_urban);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_21);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_21, function);
    }
  }
  __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_4);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2059, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __pyx_v_pumping_forecast_dowy = __pyx_t_12;
  __pyx_t_12 = 0;
+2060:     pumping_forecast_timeseries = np.zeros(365 * numYears_urban)
  __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __pyx_t_21 = PyNumber_Multiply(__pyx_int_365, __pyx_v_numYears_urban); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_21) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_21);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2060, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_pumping_forecast_timeseries = __pyx_t_12;
  __pyx_t_12 = 0;
+2061:     for t in range(0, urban_historical_T):
  __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0);
  __Pyx_INCREF(__pyx_v_urban_historical_T);
  __Pyx_GIVEREF(__pyx_v_urban_historical_T);
  PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_urban_historical_T);
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2061, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2061, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_12))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2061, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2061, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2061, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2061, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_12);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2061, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2062:       wateryear = index_urban_water_year[t]
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2062, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_4);
    __pyx_t_4 = 0;
+2063:       dowy = index_urban_dowy[t]
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2063, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_4);
    __pyx_t_4 = 0;
+2064:       sri_forecast_dowy[dowy][wateryear] = SRI_forecast[t]
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_SRI_forecast, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_sri_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_wateryear, __pyx_t_4) < 0)) __PYX_ERR(0, 2064, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2065:       pumping_forecast_dowy[dowy][wateryear] = self.observed_hro_pred[t]
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_wateryear, __pyx_t_21) < 0)) __PYX_ERR(0, 2065, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2066:       if wateryear >= urban_start_regression:
    __pyx_t_21 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_v_urban_start_regression, Py_GE); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2066, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2066, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    if (__pyx_t_5) {
/* … */
    }
+2067:         pumping_forecast_timeseries[(wateryear - urban_start_regression)*365 + dowy] = pumping_forecast_dowy[dowy][wateryear] * 1.0
      __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_dowy); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_float_1_0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_4, __pyx_int_365); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_4, __pyx_t_21) < 0)) __PYX_ERR(0, 2067, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2068: 
+2069:     regression_errors = {}
  __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2069, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_v_regression_errors = ((PyObject*)__pyx_t_12);
  __pyx_t_12 = 0;
+2070:     regression_errors_timeseries = {}
  __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2070, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __pyx_v_regression_errors_timeseries = ((PyObject*)__pyx_t_12);
  __pyx_t_12 = 0;
+2071:     for x in urban_list:
  __pyx_t_12 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_21 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_21); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2071, __pyx_L1_error)
    #else
    __pyx_t_21 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2071, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_21);
    __pyx_t_21 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2072:       counter1 = 1
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2073:       fig = plt.figure()
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_plt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2073, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_figure); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2073, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_21 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_2);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2073, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_21);
    __pyx_t_21 = 0;
+2074:       regression_errors[x] = np.zeros((365,numYears_urban - urban_start_regression))
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_int_365);
    __Pyx_GIVEREF(__pyx_int_365);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_365);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_21 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_regression_errors, __pyx_v_x, __pyx_t_21) < 0)) __PYX_ERR(0, 2074, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2075:       regression_errors_timeseries[x] = np.zeros(365*(numYears_urban-urban_start_regression))
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = PyNumber_Multiply(__pyx_int_365, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
      }
    }
    __pyx_t_21 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x, __pyx_t_21) < 0)) __PYX_ERR(0, 2075, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2076:       error_changes = np.zeros((365, numYears_urban-urban_start_regression))
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_int_365);
    __Pyx_GIVEREF(__pyx_int_365);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_9);
    __pyx_t_9 = 0;
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_21 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2076, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_error_changes, __pyx_t_21);
    __pyx_t_21 = 0;
+2077:       pumping_changes = np.zeros((365, numYears_urban-urban_start_regression))
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_int_365);
    __Pyx_GIVEREF(__pyx_int_365);
    PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_int_365);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_9, 1, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_21 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2077, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_pumping_changes, __pyx_t_21);
    __pyx_t_21 = 0;
 2078: 
+2079:       for wateryear_day in range(0,365):
    for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
      __pyx_t_21 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2079, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_21);
      __pyx_t_21 = 0;
 2080:         #coef = np.polyfit(sri_forecast_dowy[wateryear_day][urban_start_regression:-1], regression_percent[x][urban_start_regression:-1],1)
+2081:         coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[x][wateryear_day][urban_start_regression:],1)
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_int_1};
        __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2081, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_2, __pyx_t_4, __pyx_int_1};
        __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2081, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2081, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (__pyx_t_3) {
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3); __pyx_t_3 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_t_4);
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_GIVEREF(__pyx_int_1);
        PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_7, __pyx_int_1);
        __pyx_t_2 = 0;
        __pyx_t_4 = 0;
        __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_1, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2081, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_21);
      __pyx_t_21 = 0;
+2082:         if self.use_sensitivity:
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2082, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2082, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if (__pyx_t_5) {
/* … */
        goto __pyx_L96;
      }
+2083:           x.delivery_percent_coefficient[0][wateryear_day][0] = self.sensitivity_factors['urban_wet_year_demand_reduction']['realization']*coef[0]
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_urban_wet_year_demand_reduction); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_1 = PyNumber_Multiply(__pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_9, 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2083, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2084:         else:
+2085:           x.delivery_percent_coefficient[0][wateryear_day][0] = coef[0]
      /*else*/ {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2085, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2085, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2085, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2085, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_9, 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2085, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __pyx_L96:;
+2086:         x.delivery_percent_coefficient[0][wateryear_day][1] = coef[1]
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2086, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_9, 1, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2086, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2087: 
 2088: 
+2089:         if x.key == 'xxx':
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2089, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_xxx, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2089, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {
/* … */
      }
+2090:           sri = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2090, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2090, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_21);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_21, function);
          }
        }
        __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_9, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2090, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_XDECREF_SET(__pyx_v_sri, __pyx_t_1);
        __pyx_t_1 = 0;
+2091:           percent = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_zeros); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_21, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF_SET(__pyx_v_percent, __pyx_t_1);
        __pyx_t_1 = 0;
+2092:           ax1 = fig.add_subplot(4,5,counter1)
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2092, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2092, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2092, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        {
          __pyx_t_4 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2092, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (__pyx_t_21) {
            __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_21); __pyx_t_21 = NULL;
          }
          __Pyx_INCREF(__pyx_int_4);
          __Pyx_GIVEREF(__pyx_int_4);
          PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_7, __pyx_int_4);
          __Pyx_INCREF(__pyx_int_5);
          __Pyx_GIVEREF(__pyx_int_5);
          PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_7, __pyx_int_5);
          __Pyx_INCREF(__pyx_v_counter1);
          __Pyx_GIVEREF(__pyx_v_counter1);
          PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_7, __pyx_v_counter1);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2092, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_1);
        __pyx_t_1 = 0;
 2093: 
 2094: 
+2095:           for yy in range(urban_start_regression,numYears_urban):
        __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2095, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_v_urban_start_regression);
        __Pyx_GIVEREF(__pyx_v_urban_start_regression);
        PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_urban_start_regression);
        __Pyx_INCREF(__pyx_v_numYears_urban);
        __Pyx_GIVEREF(__pyx_v_numYears_urban);
        PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_numYears_urban);
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2095, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
          __pyx_t_1 = __pyx_t_9; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
          __pyx_t_8 = NULL;
        } else {
          __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2095, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2095, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        for (;;) {
          if (likely(!__pyx_t_8)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2095, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2095, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            } else {
              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2095, __pyx_L1_error)
              #else
              __pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2095, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              #endif
            }
          } else {
            __pyx_t_9 = __pyx_t_8(__pyx_t_1);
            if (unlikely(!__pyx_t_9)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2095, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_9);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_9);
          __pyx_t_9 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2096:             sri[yy] = pumping_forecast_dowy[wateryear_day][yy]
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2096, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2096, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(PyObject_SetItem(__pyx_v_sri, __pyx_v_yy, __pyx_t_4) < 0)) __PYX_ERR(0, 2096, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2097:             percent[yy] = regression_percent[x][wateryear_day][yy]
          __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2097, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2097, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2097, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(PyObject_SetItem(__pyx_v_percent, __pyx_v_yy, __pyx_t_4) < 0)) __PYX_ERR(0, 2097, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2098:           ax1.scatter(sri[urban_start_regression:], percent[urban_start_regression:], s=50, c='red', edgecolor='none', alpha=0.7)
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_v_sri, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = __Pyx_PyObject_GetSlice(__pyx_v_percent, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_t_9);
        __pyx_t_4 = 0;
        __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2098, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2098, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2098, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2098, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2099:           ax1.plot([np.max(sri), 0.0], [(np.max(sri)*coef[0] + coef[1]), coef[1]],c='red')
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_9 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_21, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_sri);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_9);
        PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_9);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
        __pyx_t_9 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_2, function);
          }
        }
        __pyx_t_9 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_21, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_sri);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = PyNumber_Multiply(__pyx_t_9, __pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_9 = PyNumber_Add(__pyx_t_21, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = PyList_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_GIVEREF(__pyx_t_9);
        PyList_SET_ITEM(__pyx_t_21, 0, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_2);
        PyList_SET_ITEM(__pyx_t_21, 1, __pyx_t_2);
        __pyx_t_9 = 0;
        __pyx_t_2 = 0;
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_21);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_21);
        __pyx_t_1 = 0;
        __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        if (PyDict_SetItem(__pyx_t_21, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2099, __pyx_L1_error)
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2100:           ax1.set_xlim([np.min(sri), np.max(sri)])
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_min); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_sri);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_9 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_sri);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_2);
        PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_9);
        PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_9);
        __pyx_t_2 = 0;
        __pyx_t_9 = 0;
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_21);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_21, function);
          }
        }
        __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_3);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2101:           counter1 += 1
        __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2101, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_1);
        __pyx_t_1 = 0;
+2102:           if counter1 == 21:
        __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2102, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2102, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_5) {
/* … */
        }
+2103:             plt.show()
          __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2103, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_show); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2103, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2103, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2104:             plt.close()
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_close); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
            }
          }
          __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_21);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2105:             fig = plt.figure()
          __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_figure); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2105, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_1);
          __pyx_t_1 = 0;
+2106:             counter1 = 1
          __Pyx_INCREF(__pyx_int_1);
          __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
 2107: 
 2108: 
+2109:         for wateryear_count in range(urban_start_regression,numYears_urban):
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_urban_start_regression);
      __Pyx_GIVEREF(__pyx_v_urban_start_regression);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_urban_start_regression);
      __Pyx_INCREF(__pyx_v_numYears_urban);
      __Pyx_GIVEREF(__pyx_v_numYears_urban);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_numYears_urban);
      __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2109, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2109, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2109, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2109, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          }
        } else {
          __pyx_t_3 = __pyx_t_8(__pyx_t_1);
          if (unlikely(!__pyx_t_3)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2109, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
+2110:           regression_errors[x][wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_dowy[wateryear_day][wateryear_count]*x.delivery_percent_coefficient[0][wateryear_day][0] + x.delivery_percent_coefficient[0][wateryear_day][1] - regression_percent[x][wateryear_day][wateryear_count]
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Subtract(__pyx_t_9, __pyx_t_21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_21, __pyx_t_3) < 0)) __PYX_ERR(0, 2110, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 2111: 
+2112:           regression_errors_timeseries[x][(wateryear_count - urban_start_regression)*365 + wateryear_day] = pumping_forecast_dowy[wateryear_day][wateryear_count]*x.delivery_percent_coefficient[0][wateryear_day][0] + x.delivery_percent_coefficient[0][wateryear_day][1] - regression_percent[x][wateryear_day][wateryear_count]
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Add(__pyx_t_3, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Subtract(__pyx_t_9, __pyx_t_21); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = PyNumber_Multiply(__pyx_t_9, __pyx_int_365); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Add(__pyx_t_2, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_9, __pyx_t_3) < 0)) __PYX_ERR(0, 2112, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 2113: 
+2114:       for wateryear_count in range(urban_start_regression,numYears_urban):
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_v_urban_start_regression);
    __Pyx_GIVEREF(__pyx_v_urban_start_regression);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_urban_start_regression);
    __Pyx_INCREF(__pyx_v_numYears_urban);
    __Pyx_GIVEREF(__pyx_v_numYears_urban);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_numYears_urban);
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2114, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2114, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2114, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2114, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_3); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2114, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_8(__pyx_t_1);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2114, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2115:         for wateryear_day in range(0, 365):
      for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
        __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2115, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_3);
        __pyx_t_3 = 0;
+2116:           if (wateryear_count - urban_start_regression)*365 + wateryear_day > 0:
        __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2116, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_3, __pyx_int_365); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2116, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Add(__pyx_t_9, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2116, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyObject_RichCompare(__pyx_t_3, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2116, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2116, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_5) {
/* … */
        }
      }
+2117:             error_changes[wateryear_day][wateryear_count - urban_start_regression] = regression_errors_timeseries[x][(wateryear_count - urban_start_regression)*365 + wateryear_day]*min(wateryear_day/240.0, 1.0) - regression_errors_timeseries[x][(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]*min((wateryear_day-1.0)/240.0, 1.0)
          __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_21 = PyNumber_Multiply(__pyx_t_3, __pyx_int_365); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_Add(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_23 = 1.0;
          __pyx_t_3 = __Pyx_PyFloat_TrueDivideObjC(__pyx_v_wateryear_day, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (__pyx_t_5) {
            __pyx_t_4 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_9 = __pyx_t_4;
            __pyx_t_4 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_3);
            __pyx_t_9 = __pyx_t_3;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_Multiply(__pyx_t_21, __pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_4 = PyNumber_Multiply(__pyx_t_21, __pyx_int_365); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Add(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_21, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_23 = 1.0;
          __pyx_t_4 = __Pyx_PyFloat_SubtractObjC(__pyx_v_wateryear_day, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_4, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = PyObject_RichCompare(__pyx_t_2, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (__pyx_t_5) {
            __pyx_t_15 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2117, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_4 = __pyx_t_15;
            __pyx_t_15 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_9);
            __pyx_t_4 = __pyx_t_9;
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_Multiply(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Subtract(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_3, __pyx_t_4) < 0)) __PYX_ERR(0, 2117, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2118:             pumping_changes[wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day] - pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]
          __pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = PyNumber_Multiply(__pyx_t_4, __pyx_int_365); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Add(__pyx_t_3, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_int_365); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Add(__pyx_t_9, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyInt_SubtractObjC(__pyx_t_4, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_Subtract(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_3 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_3, __pyx_t_9) < 0)) __PYX_ERR(0, 2118, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 2119: 
 2120: 
+2121:       pumping_forecast_min = -500.0
    __pyx_v_pumping_forecast_min = -500.0;
+2122:       pumping_forecast_max = 500.0
    __pyx_v_pumping_forecast_max = 500.0;
+2123:       counter1 = 1
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2124:       x.demand_auto_errors = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors, __pyx_t_1) < 0) __PYX_ERR(0, 2124, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2125:       x.demand_auto_errors[0] = np.zeros((365, numYears_urban - urban_start_regression))
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_int_365);
    __Pyx_GIVEREF(__pyx_int_365);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_365);
    __Pyx_GIVEREF(__pyx_t_9);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_9);
    __pyx_t_9 = 0;
    __pyx_t_9 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 0, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2125, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2126:       for wateryear_day in range(0, 365):
    for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
      __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2126, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_1);
      __pyx_t_1 = 0;
+2127:         day_error_changes = error_changes[wateryear_day]
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2127, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_day_error_changes, __pyx_t_1);
      __pyx_t_1 = 0;
+2128:         day_pumping_changes = pumping_changes[wateryear_day]
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2128, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_day_pumping_changes, __pyx_t_1);
      __pyx_t_1 = 0;
+2129:         np_list_1_logi = np.logical_and(day_pumping_changes > pumping_forecast_min, day_pumping_changes < pumping_forecast_max)
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_logical_and); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pumping_forecast_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_pumping_forecast_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_21 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2129, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_9, __pyx_t_21};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2129, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_9, __pyx_t_21};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2129, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      } else
      #endif
      {
        __pyx_t_15 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        if (__pyx_t_3) {
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_3); __pyx_t_3 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_21);
        PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_t_21);
        __pyx_t_9 = 0;
        __pyx_t_21 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_np_list_1_logi, __pyx_t_1);
      __pyx_t_1 = 0;
+2130:         day_error_cleaned = day_error_changes[np_list_1_logi]
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_day_error_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2130, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_day_error_cleaned, __pyx_t_1);
      __pyx_t_1 = 0;
+2131:         day_pumping_cleaned = day_pumping_changes[np_list_1_logi]
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_day_pumping_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_day_pumping_cleaned, __pyx_t_1);
      __pyx_t_1 = 0;
+2132:         coef = np.polyfit(day_pumping_cleaned, day_error_cleaned, 1)
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      __pyx_t_7 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
          __pyx_t_7 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_15)) {
        PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2132, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
        PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2132, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_21 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_day_pumping_cleaned);
        __Pyx_GIVEREF(__pyx_v_day_pumping_cleaned);
        PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_7, __pyx_v_day_pumping_cleaned);
        __Pyx_INCREF(__pyx_v_day_error_cleaned);
        __Pyx_GIVEREF(__pyx_v_day_error_cleaned);
        PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_7, __pyx_v_day_error_cleaned);
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_GIVEREF(__pyx_int_1);
        PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_7, __pyx_int_1);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_1);
      __pyx_t_1 = 0;
+2133:         x.delivery_percent_coefficient[0][wateryear_day][2] = coef[0]
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_15, 2, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2133, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2134:         x.delivery_percent_coefficient[0][wateryear_day][3] = coef[1]
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2134, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_15, 3, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2134, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2135:         for y in range(urban_start_regression, numYears_urban):
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_v_urban_start_regression);
      __Pyx_GIVEREF(__pyx_v_urban_start_regression);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_urban_start_regression);
      __Pyx_INCREF(__pyx_v_numYears_urban);
      __Pyx_GIVEREF(__pyx_v_numYears_urban);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_numYears_urban);
      __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) {
        __pyx_t_1 = __pyx_t_15; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2135, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_15); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2135, __pyx_L1_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2135, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_15); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2135, __pyx_L1_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2135, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          }
        } else {
          __pyx_t_15 = __pyx_t_8(__pyx_t_1);
          if (unlikely(!__pyx_t_15)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2135, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_15);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_15);
        __pyx_t_15 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2136:           x.demand_auto_errors[0][wateryear_day][y-urban_start_regression] = pumping_changes[wateryear_day][y - urban_start_regression] * x.delivery_percent_coefficient[0][wateryear_day][2] + x.delivery_percent_coefficient[0][wateryear_day][3] - error_changes[wateryear_day][y - urban_start_regression]
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_21 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_21, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_21, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyNumber_Multiply(__pyx_t_4, __pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_15, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = PyNumber_Add(__pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_21 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = PyNumber_Subtract(__pyx_t_15, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_15, __pyx_t_21) < 0)) __PYX_ERR(0, 2136, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2137: 
+2138:         if x.key == 'XXX':
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2138, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {
/* … */
      }
    }
+2139:           fig = plt.figure()
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_plt); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_figure); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
          }
        }
        __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_21) : __Pyx_PyObject_CallNoArg(__pyx_t_15);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_1);
        __pyx_t_1 = 0;
+2140:           ax1 = fig.add_subplot(4,5,counter1)
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2140, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_21 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2140, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_21, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2140, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2140, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_21) {
            __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_21); __pyx_t_21 = NULL;
          }
          __Pyx_INCREF(__pyx_int_4);
          __Pyx_GIVEREF(__pyx_int_4);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_7, __pyx_int_4);
          __Pyx_INCREF(__pyx_int_5);
          __Pyx_GIVEREF(__pyx_int_5);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_7, __pyx_int_5);
          __Pyx_INCREF(__pyx_v_counter1);
          __Pyx_GIVEREF(__pyx_v_counter1);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_7, __pyx_v_counter1);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_9, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2140, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_1);
        __pyx_t_1 = 0;
+2141:           ax1.scatter(day_pumping_changes, day_error_changes, s=50, c='red', edgecolor='none', alpha=0.7)
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_INCREF(__pyx_v_day_pumping_changes);
        __Pyx_GIVEREF(__pyx_v_day_pumping_changes);
        PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_v_day_pumping_changes);
        __Pyx_INCREF(__pyx_v_day_error_changes);
        __Pyx_GIVEREF(__pyx_v_day_error_changes);
        PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_v_day_error_changes);
        __pyx_t_9 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2141, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2141, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2141, __pyx_L1_error)
        if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2141, __pyx_L1_error)
        __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_15, __pyx_t_9); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2141, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+2142:           ax1.plot([np.max(day_pumping_changes), np.min(day_pumping_changes)], [(np.max(day_pumping_changes)*coef[0] + coef[1]), np.min(day_pumping_changes)*coef[0] + coef[1]],c='red')
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_15)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_9 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_15, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_min); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_15)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_1 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_15, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_9);
        PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_1);
        PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_1);
        __pyx_t_9 = 0;
        __pyx_t_1 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_max); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
          }
        }
        __pyx_t_1 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_9, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_1 = PyNumber_Add(__pyx_t_9, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_15 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_15 = PyNumber_Add(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_1);
        PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_15);
        PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_15);
        __pyx_t_1 = 0;
        __pyx_t_15 = 0;
        __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_3);
        __pyx_t_4 = 0;
        __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2142, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_15, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2142, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2143:           ax1.set_xlim([np.min(day_pumping_changes), np.max(day_pumping_changes)])
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_15 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_21)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_21);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        __pyx_t_1 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_9, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_v_day_pumping_changes);
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyList_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_15);
        PyList_SET_ITEM(__pyx_t_9, 0, __pyx_t_15);
        __Pyx_GIVEREF(__pyx_t_1);
        PyList_SET_ITEM(__pyx_t_9, 1, __pyx_t_1);
        __pyx_t_15 = 0;
        __pyx_t_1 = 0;
        __pyx_t_1 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_1, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9);
        __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2144:           ax1.set_title(wateryear_day)
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_title); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2144, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
          __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
          if (likely(__pyx_t_9)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
            __Pyx_INCREF(__pyx_t_9);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_3, function);
          }
        }
        __pyx_t_4 = (__pyx_t_9) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_9, __pyx_v_wateryear_day) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_wateryear_day);
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2144, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2145:           counter1 += 1
        __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2145, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_4);
        __pyx_t_4 = 0;
+2146:           if counter1 == 21:
        __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2146, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2146, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_5) {
/* … */
        }
+2147:             plt.show()
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2147, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_show); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2147, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_9, function);
            }
          }
          __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2147, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2148:             plt.close()
          __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_plt); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2148, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_close); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2148, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_9)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_9);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
            }
          }
          __pyx_t_4 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_3);
          __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2148, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2149:             fig = plt.figure()
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_plt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_figure); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_9))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_9, function);
            }
          }
          __pyx_t_4 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2149, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_4);
          __pyx_t_4 = 0;
+2150:             counter1 = 1
          __Pyx_INCREF(__pyx_int_1);
          __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
 2151: 
 2152: 
+2153:     for x in self.city_list:
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2153, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
    __pyx_t_4 = __pyx_t_12; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2153, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_12 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2153, __pyx_L1_error)
        #else
        __pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2153, __pyx_L1_error)
        #else
        __pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2153, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        #endif
      }
    } else {
      __pyx_t_12 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_12)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2153, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_12);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12);
    __pyx_t_12 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2154:       regression_errors[x] = {}
    __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2154, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (unlikely(PyDict_SetItem(__pyx_v_regression_errors, __pyx_v_x, __pyx_t_12) < 0)) __PYX_ERR(0, 2154, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2155:       regression_errors_timeseries[x] = {}
    __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2155, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (unlikely(PyDict_SetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x, __pyx_t_12) < 0)) __PYX_ERR(0, 2155, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2156:       x.demand_auto_errors = {}
    __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2156, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors, __pyx_t_12) < 0) __PYX_ERR(0, 2156, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2157:       for xx in x.district_list:
    __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
      __pyx_t_9 = __pyx_t_12; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2157, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2157, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2157, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2157, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2157, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2157, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
        }
      } else {
        __pyx_t_12 = __pyx_t_11(__pyx_t_9);
        if (unlikely(!__pyx_t_12)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2157, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_12);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_12);
      __pyx_t_12 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2158:         regression_errors[x][xx] = np.zeros((365,numYears_urban-urban_start_regression))
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_int_365);
      __Pyx_GIVEREF(__pyx_int_365);
      PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_365);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_12 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 2158, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2159:         regression_errors_timeseries[x][xx] = np.zeros(365*(numYears_urban-urban_start_regression))
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyNumber_Multiply(__pyx_int_365, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
        }
      }
      __pyx_t_12 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_1, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_3);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 2159, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 2160: 
+2161:         error_changes = np.zeros((365, numYears_urban-urban_start_regression))
      __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_int_365);
      __Pyx_GIVEREF(__pyx_int_365);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_365);
      __Pyx_GIVEREF(__pyx_t_15);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_15);
      __pyx_t_15 = 0;
      __pyx_t_15 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_15)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_15);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_15, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2161, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_error_changes, __pyx_t_12);
      __pyx_t_12 = 0;
+2162:         pumping_changes = np.zeros((365, numYears_urban-urban_start_regression))
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_INCREF(__pyx_int_365);
      __Pyx_GIVEREF(__pyx_int_365);
      PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_int_365);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_12 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_pumping_changes, __pyx_t_12);
      __pyx_t_12 = 0;
 2163: 
+2164:         counter1 = 1
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
 2165:         #fig = plt.figure() 
+2166:         for wateryear_day in range(0,365):
      for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
        __pyx_t_12 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_12);
        __pyx_t_12 = 0;
 2167: 
 2168:           #coef = np.polyfit(sri_forecast_dowy[wateryear_day][urban_start_regression:-1], regression_percent[x][xx][urban_start_regression:-1],1)
+2169:           coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[x][xx][wateryear_day][urban_start_regression:],1)
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2169, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_t_3, __pyx_t_21, __pyx_int_1};
          __pyx_t_12 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2169, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_t_3, __pyx_t_21, __pyx_int_1};
          __pyx_t_12 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2169, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        {
          __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          if (__pyx_t_1) {
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_21);
          PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_t_21);
          __Pyx_INCREF(__pyx_int_1);
          __Pyx_GIVEREF(__pyx_int_1);
          PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, __pyx_int_1);
          __pyx_t_3 = 0;
          __pyx_t_21 = 0;
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_2, NULL); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_12);
        __pyx_t_12 = 0;
+2170:           if self.use_sensitivity:
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2170, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2170, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__pyx_t_5) {
/* … */
          goto __pyx_L120;
        }
+2171:             x.delivery_percent_coefficient[xx][wateryear_day][0] = self.sensitivity_factors['urban_wet_year_demand_reduction']['realization']*coef[0]
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_urban_wet_year_demand_reduction); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_Dict_GetItem(__pyx_t_15, __pyx_n_u_realization); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_12, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_15, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2171, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2172:           else:
+2173:             x.delivery_percent_coefficient[xx][wateryear_day][0] = coef[0]
        /*else*/ {
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2173, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2173, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2173, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2173, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_15, 0, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2173, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __pyx_L120:;
 2174: 
+2175:           x.delivery_percent_coefficient[xx][wateryear_day][1] = coef[1]
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2175, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_15, 1, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2175, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2176:           for wateryear_count in range(urban_start_regression,numYears_urban):
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_urban_start_regression);
        __Pyx_GIVEREF(__pyx_v_urban_start_regression);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression);
        __Pyx_INCREF(__pyx_v_numYears_urban);
        __Pyx_GIVEREF(__pyx_v_numYears_urban);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban);
        __pyx_t_15 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2176, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) {
          __pyx_t_2 = __pyx_t_15; __Pyx_INCREF(__pyx_t_2); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_16 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2176, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_17 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2176, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_15 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_15); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2176, __pyx_L1_error)
              #else
              __pyx_t_15 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              #endif
            } else {
              if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_15); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2176, __pyx_L1_error)
              #else
              __pyx_t_15 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              #endif
            }
          } else {
            __pyx_t_15 = __pyx_t_17(__pyx_t_2);
            if (unlikely(!__pyx_t_15)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2176, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_15);
          }
          __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_15);
          __pyx_t_15 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
+2177:             regression_errors[x][xx][wateryear_day][wateryear_count-urban_start_regression] = pumping_forecast_dowy[wateryear_day][wateryear_count]*x.delivery_percent_coefficient[xx][wateryear_day][0] + x.delivery_percent_coefficient[xx][wateryear_day][1] - regression_percent[x][xx][wateryear_day][wateryear_count]
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyNumber_Multiply(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_21, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Add(__pyx_t_15, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_Subtract(__pyx_t_21, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_21, __pyx_t_12) < 0)) __PYX_ERR(0, 2177, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2178:             regression_errors_timeseries[x][xx][(wateryear_count - urban_start_regression)*365 + wateryear_day] = pumping_forecast_dowy[wateryear_day][wateryear_count]*x.delivery_percent_coefficient[xx][wateryear_day][0] + x.delivery_percent_coefficient[xx][wateryear_day][1] - regression_percent[x][xx][wateryear_day][wateryear_count]
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_Multiply(__pyx_t_21, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_15, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyNumber_Add(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_count); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Subtract(__pyx_t_15, __pyx_t_12); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_3 = PyNumber_Multiply(__pyx_t_12, __pyx_int_365); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_Add(__pyx_t_3, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_12, __pyx_t_21) < 0)) __PYX_ERR(0, 2178, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2179: 
+2180:         for wateryear_count in range(urban_start_regression,numYears_urban):
      __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_urban_start_regression);
      __Pyx_GIVEREF(__pyx_v_urban_start_regression);
      PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression);
      __Pyx_INCREF(__pyx_v_numYears_urban);
      __Pyx_GIVEREF(__pyx_v_numYears_urban);
      PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban);
      __pyx_t_21 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2180, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
        __pyx_t_2 = __pyx_t_21; __Pyx_INCREF(__pyx_t_2); __pyx_t_16 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_16 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2180, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_17 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2180, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_21); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2180, __pyx_L1_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2180, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          } else {
            if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_21); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2180, __pyx_L1_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2180, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          }
        } else {
          __pyx_t_21 = __pyx_t_17(__pyx_t_2);
          if (unlikely(!__pyx_t_21)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2180, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_21);
        }
        __Pyx_XDECREF_SET(__pyx_v_wateryear_count, __pyx_t_21);
        __pyx_t_21 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2181:           for wateryear_day in range(0, 365):
        for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
          __pyx_t_21 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2181, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_21);
          __pyx_t_21 = 0;
+2182:             if (wateryear_count - urban_start_regression)*365 + wateryear_day > 0:
          __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2182, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_12 = PyNumber_Multiply(__pyx_t_21, __pyx_int_365); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2182, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Add(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2182, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyObject_RichCompare(__pyx_t_21, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2182, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2182, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_5) {
/* … */
          }
        }
+2183:               error_changes[wateryear_day][wateryear_count - urban_start_regression] = regression_errors_timeseries[x][xx][(wateryear_count - urban_start_regression)*365 + wateryear_day]*min(wateryear_day/240.0, 1.0) - regression_errors_timeseries[x][xx][(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]*min((wateryear_day-1.0)/240.0, 1.0)
            __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_12, __pyx_int_365); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_Add(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_23 = 1.0;
            __pyx_t_12 = __Pyx_PyFloat_TrueDivideObjC(__pyx_v_wateryear_day, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_12, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_5) {
              __pyx_t_1 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_21 = __pyx_t_1;
              __pyx_t_1 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_12);
              __pyx_t_21 = __pyx_t_12;
            }
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_Multiply(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_regression_errors_timeseries, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __pyx_t_1 = PyNumber_Multiply(__pyx_t_21, __pyx_int_365); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = PyNumber_Add(__pyx_t_1, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_21, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_23 = 1.0;
            __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_v_wateryear_day, __pyx_float_1_0, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_1, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_14 = PyObject_RichCompare(__pyx_t_3, __pyx_t_15, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (__pyx_t_5) {
              __pyx_t_14 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2183, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_1 = __pyx_t_14;
              __pyx_t_14 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_15);
              __pyx_t_1 = __pyx_t_15;
            }
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Subtract(__pyx_t_12, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_12 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_12, __pyx_t_1) < 0)) __PYX_ERR(0, 2183, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2184:               pumping_changes[wateryear_day][wateryear_count - urban_start_regression] = pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day] - pumping_forecast_timeseries[(wateryear_count - urban_start_regression)*365 + wateryear_day - 1]
            __pyx_t_1 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_12 = PyNumber_Multiply(__pyx_t_1, __pyx_int_365); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Add(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_1, __pyx_int_365); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Add(__pyx_t_15, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_timeseries, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Subtract(__pyx_t_12, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_12 = PyNumber_Subtract(__pyx_v_wateryear_count, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_12, __pyx_t_15) < 0)) __PYX_ERR(0, 2184, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 2185: 
+2186:         x.demand_auto_errors[xx] = np.zeros((365,numYears_urban-urban_start_regression))
      __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_INCREF(__pyx_int_365);
      __Pyx_GIVEREF(__pyx_int_365);
      PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_365);
      __Pyx_GIVEREF(__pyx_t_15);
      PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_15);
      __pyx_t_15 = 0;
      __pyx_t_15 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_12);
        if (likely(__pyx_t_15)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_15);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_12, function);
        }
      }
      __pyx_t_2 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_15, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_1);
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_v_xx, __pyx_t_2) < 0)) __PYX_ERR(0, 2186, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2187:         pumping_forecast_min = -500.0
      __pyx_v_pumping_forecast_min = -500.0;
+2188:         pumping_forecast_max = 500.0
      __pyx_v_pumping_forecast_max = 500.0;
+2189:         fig = plt.figure()
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_plt); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_figure); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_12)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_12);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_2 = (__pyx_t_12) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2189, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_2);
      __pyx_t_2 = 0;
+2190:         counter1 = 1
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2191:         for wateryear_day in range(0, 365):
      for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
        __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2191, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_2);
        __pyx_t_2 = 0;
+2192:           day_error_changes = error_changes[wateryear_day]
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2192, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_day_error_changes, __pyx_t_2);
        __pyx_t_2 = 0;
+2193:           day_pumping_changes = pumping_changes[wateryear_day]
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2193, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_day_pumping_changes, __pyx_t_2);
        __pyx_t_2 = 0;
+2194:           np_list_1_logi = np.logical_and(day_pumping_changes > pumping_forecast_min, day_pumping_changes < pumping_forecast_max)
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_logical_and); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_v_pumping_forecast_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_v_pumping_forecast_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_21 = PyObject_RichCompare(__pyx_v_day_pumping_changes, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2194, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_12, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_15, __pyx_t_21};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2194, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_12)) {
          PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_t_15, __pyx_t_21};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_12, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2194, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2194, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_1) {
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __pyx_t_1 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_15);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_7, __pyx_t_15);
          __Pyx_GIVEREF(__pyx_t_21);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_7, __pyx_t_21);
          __pyx_t_15 = 0;
          __pyx_t_21 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_12, __pyx_t_14, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2194, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF_SET(__pyx_v_np_list_1_logi, __pyx_t_2);
        __pyx_t_2 = 0;
+2195:           day_error_cleaned = day_error_changes[np_list_1_logi]
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_day_error_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2195, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_day_error_cleaned, __pyx_t_2);
        __pyx_t_2 = 0;
+2196:           day_pumping_cleaned = day_pumping_changes[np_list_1_logi]
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_v_day_pumping_changes, __pyx_v_np_list_1_logi); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2196, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_XDECREF_SET(__pyx_v_day_pumping_cleaned, __pyx_t_2);
        __pyx_t_2 = 0;
+2197:           coef = np.polyfit(day_pumping_cleaned, day_error_cleaned, 1)
        __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2197, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_12)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_12);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_14)) {
          PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2197, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
          PyObject *__pyx_temp[4] = {__pyx_t_12, __pyx_v_day_pumping_cleaned, __pyx_v_day_error_cleaned, __pyx_int_1};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2197, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_GOTREF(__pyx_t_2);
        } else
        #endif
        {
          __pyx_t_21 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          if (__pyx_t_12) {
            __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_12); __pyx_t_12 = NULL;
          }
          __Pyx_INCREF(__pyx_v_day_pumping_cleaned);
          __Pyx_GIVEREF(__pyx_v_day_pumping_cleaned);
          PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_7, __pyx_v_day_pumping_cleaned);
          __Pyx_INCREF(__pyx_v_day_error_cleaned);
          __Pyx_GIVEREF(__pyx_v_day_error_cleaned);
          PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_7, __pyx_v_day_error_cleaned);
          __Pyx_INCREF(__pyx_int_1);
          __Pyx_GIVEREF(__pyx_int_1);
          PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_7, __pyx_int_1);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2197, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_2);
        __pyx_t_2 = 0;
+2198:           x.delivery_percent_coefficient[xx][wateryear_day][2] = coef[0]
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2198, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2198, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2198, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2198, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_14, 2, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2198, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2199:           x.delivery_percent_coefficient[xx][wateryear_day][3] = coef[1]
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2199, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2199, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2199, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2199, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_14, 3, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2199, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2200:           for y in range(urban_start_regression, numYears_urban):
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_urban_start_regression);
        __Pyx_GIVEREF(__pyx_v_urban_start_regression);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_urban_start_regression);
        __Pyx_INCREF(__pyx_v_numYears_urban);
        __Pyx_GIVEREF(__pyx_v_numYears_urban);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_numYears_urban);
        __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2200, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
          __pyx_t_2 = __pyx_t_14; __Pyx_INCREF(__pyx_t_2); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_16 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2200, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_17 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2200, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_14 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_14); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2200, __pyx_L1_error)
              #else
              __pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2200, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              #endif
            } else {
              if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_16); __Pyx_INCREF(__pyx_t_14); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2200, __pyx_L1_error)
              #else
              __pyx_t_14 = PySequence_ITEM(__pyx_t_2, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2200, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              #endif
            }
          } else {
            __pyx_t_14 = __pyx_t_17(__pyx_t_2);
            if (unlikely(!__pyx_t_14)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2200, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_14);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_14);
          __pyx_t_14 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2201:             x.demand_auto_errors[xx][wateryear_day][y-urban_start_regression] = pumping_changes[wateryear_day][y - urban_start_regression] * x.delivery_percent_coefficient[xx][wateryear_day][2] + x.delivery_percent_coefficient[xx][wateryear_day][3] - error_changes[wateryear_day][y - urban_start_regression]
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_pumping_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_21 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_t_21); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_GetItemInt(__pyx_t_21, 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Multiply(__pyx_t_12, __pyx_t_14); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_GetItemInt(__pyx_t_14, 3, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_Add(__pyx_t_21, __pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_error_changes, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_21 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = PyNumber_Subtract(__pyx_t_14, __pyx_t_15); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_auto_errors); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_Subtract(__pyx_v_y, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_14, __pyx_t_21) < 0)) __PYX_ERR(0, 2201, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 2202: 
+2203:           if x.key == 'XXX':
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2203, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2203, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_5) {
/* … */
        }
      }
+2204:             ax1 = fig.add_subplot(4,5,counter1)
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2204, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_14 = NULL;
          __pyx_t_7 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
              __pyx_t_7 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_21)) {
            PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) {
            PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_GOTREF(__pyx_t_2);
          } else
          #endif
          {
            __pyx_t_15 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2204, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            if (__pyx_t_14) {
              __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
            }
            __Pyx_INCREF(__pyx_int_4);
            __Pyx_GIVEREF(__pyx_int_4);
            PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_7, __pyx_int_4);
            __Pyx_INCREF(__pyx_int_5);
            __Pyx_GIVEREF(__pyx_int_5);
            PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_7, __pyx_int_5);
            __Pyx_INCREF(__pyx_v_counter1);
            __Pyx_GIVEREF(__pyx_v_counter1);
            PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_7, __pyx_v_counter1);
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_15, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2204, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          }
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_2);
          __pyx_t_2 = 0;
+2205:             ax1.scatter(day_pumping_changes, day_error_changes, s=50, c='red', edgecolor='none', alpha=0.7)
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_INCREF(__pyx_v_day_pumping_changes);
          __Pyx_GIVEREF(__pyx_v_day_pumping_changes);
          PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_v_day_pumping_changes);
          __Pyx_INCREF(__pyx_v_day_error_changes);
          __Pyx_GIVEREF(__pyx_v_day_error_changes);
          PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_v_day_error_changes);
          __pyx_t_15 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2205, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2205, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2205, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_15, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2205, __pyx_L1_error)
          __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_21, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2205, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2206:             ax1.plot([np.max(day_pumping_changes), np.min(day_pumping_changes)], [(np.max(day_pumping_changes)*coef[0] + coef[1]), np.min(day_pumping_changes)*coef[0] + coef[1]],c='red')
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_max); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_15 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_21, __pyx_n_s_np); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_21, __pyx_n_s_min); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
            __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_12);
            if (likely(__pyx_t_21)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
              __Pyx_INCREF(__pyx_t_21);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_12, function);
            }
          }
          __pyx_t_2 = (__pyx_t_21) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_21, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyList_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_GIVEREF(__pyx_t_15);
          PyList_SET_ITEM(__pyx_t_12, 0, __pyx_t_15);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_12, 1, __pyx_t_2);
          __pyx_t_15 = 0;
          __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_max); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_15)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_15);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
            }
          }
          __pyx_t_2 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_15, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_15 = PyNumber_Multiply(__pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_2 = PyNumber_Add(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_15)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_15);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_21 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_15, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_15 = PyNumber_Multiply(__pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_21 = PyNumber_Add(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_21);
          PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_21);
          __pyx_t_2 = 0;
          __pyx_t_21 = 0;
          __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_GIVEREF(__pyx_t_12);
          PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_12);
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_t_1);
          __pyx_t_12 = 0;
          __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2206, __pyx_L1_error)
          __pyx_t_12 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_21, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2206, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2207:             ax1.set_xlim([np.min(day_pumping_changes), np.max(day_pumping_changes)])
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_21 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_14, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_max); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
            __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15);
            if (likely(__pyx_t_14)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_15, function);
            }
          }
          __pyx_t_2 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_14, __pyx_v_day_pumping_changes) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_day_pumping_changes);
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_GIVEREF(__pyx_t_21);
          PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_21);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_2);
          __pyx_t_21 = 0;
          __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2207, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2208:             ax1.set_title(wateryear_day)
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_title); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2208, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_15 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_15)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_15);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_15, __pyx_v_wateryear_day) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_wateryear_day);
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2208, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2209:             counter1 += 1
          __pyx_t_12 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2209, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_12);
          __pyx_t_12 = 0;
+2210:             if counter1 == 21:
          __pyx_t_12 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2210, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2210, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_5) {
/* … */
          }
+2211:               plt.show()
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_plt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2211, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_show); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2211, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
              __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
              if (likely(__pyx_t_1)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
                __Pyx_INCREF(__pyx_t_1);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_15, function);
              }
            }
            __pyx_t_12 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_15);
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2211, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2212:               plt.close()
            __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_plt); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2212, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_close); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2212, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
              __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
              if (likely(__pyx_t_15)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
                __Pyx_INCREF(__pyx_t_15);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_1, function);
              }
            }
            __pyx_t_12 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2212, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2213:               fig = plt.figure()
            __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_plt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2213, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_figure); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2213, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
              __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
              if (likely(__pyx_t_1)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
                __Pyx_INCREF(__pyx_t_1);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_15, function);
              }
            }
            __pyx_t_12 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_15);
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2213, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_12);
            __pyx_t_12 = 0;
+2214:               counter1 = 1
            __Pyx_INCREF(__pyx_int_1);
            __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
 2215: 
 2216: 
 2217: 
+2218:     for x in self.city_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_9 = __pyx_t_4; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2218, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2218, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2218, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2218, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_8(__pyx_t_9);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2218, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2219:       for xx in x.district_list:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_12 = __pyx_t_4; __Pyx_INCREF(__pyx_t_12); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2219, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_11 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2219, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2219, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_10); __Pyx_INCREF(__pyx_t_4); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2219, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_12, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2219, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_11(__pyx_t_12);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2219, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2220:         counter1 = 1
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_XDECREF_SET(__pyx_v_counter1, __pyx_int_1);
+2221:         fig = plt.figure()
      __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_plt); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2221, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_figure); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2221, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_15)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_15);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_4 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_1);
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2221, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_fig, __pyx_t_4);
      __pyx_t_4 = 0;
+2222:         for wateryear_day in range(0,365):
      for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
        __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_4);
        __pyx_t_4 = 0;
+2223:           coef = np.polyfit(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[x][xx][wateryear_day][urban_start_regression:],1)
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_polyfit); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2223, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = NULL;
        __pyx_t_7 = 0;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_1)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_1);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
            __pyx_t_7 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_t_2, __pyx_t_21, __pyx_int_1};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2223, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
          PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_t_2, __pyx_t_21, __pyx_int_1};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2223, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2223, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_1) {
            __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __pyx_t_1 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_7, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_21);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_7, __pyx_t_21);
          __Pyx_INCREF(__pyx_int_1);
          __Pyx_GIVEREF(__pyx_int_1);
          PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_7, __pyx_int_1);
          __pyx_t_2 = 0;
          __pyx_t_21 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2223, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_XDECREF_SET(__pyx_v_coef, __pyx_t_4);
        __pyx_t_4 = 0;
+2224:           if x.key == "XXX":
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_t_4, __pyx_n_u_XXX, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2224, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_5) {
/* … */
        }
      }
+2225:             r = np.corrcoef(pumping_forecast_dowy[wateryear_day][urban_start_regression:], regression_percent[x][xx][wateryear_day][urban_start_regression:])[0,1]
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_corrcoef); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = __Pyx_PyObject_GetSlice(__pyx_t_15, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_15, 0, 0, &__pyx_v_urban_start_regression, NULL, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = NULL;
          __pyx_t_7 = 0;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_15)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_15);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_7 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_15, __pyx_t_21, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2225, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_15, __pyx_t_21, __pyx_t_2};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_7, 2+__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2225, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_1 = PyTuple_New(2+__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2225, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            if (__pyx_t_15) {
              __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_15); __pyx_t_15 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_21);
            PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_7, __pyx_t_21);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_7, __pyx_t_2);
            __pyx_t_21 = 0;
            __pyx_t_2 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_1, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2225, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_tuple__47); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2225, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF_SET(__pyx_v_r, __pyx_t_14);
          __pyx_t_14 = 0;
/* … */
  __pyx_tuple__47 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_1); if (unlikely(!__pyx_tuple__47)) __PYX_ERR(0, 2225, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__47);
  __Pyx_GIVEREF(__pyx_tuple__47);
+2226:             sri = np.zeros(numYears_urban)
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_numYears_urban);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2226, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF_SET(__pyx_v_sri, __pyx_t_14);
          __pyx_t_14 = 0;
+2227:             percent = np.zeros(numYears_urban)
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2227, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2227, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_14 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_numYears_urban);
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2227, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF_SET(__pyx_v_percent, __pyx_t_14);
          __pyx_t_14 = 0;
+2228:             ax1 = fig.add_subplot(4,5,counter1)
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_fig, __pyx_n_s_add_subplot); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2228, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = NULL;
          __pyx_t_7 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
              __pyx_t_7 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
            __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2228, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_14);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
            PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_int_4, __pyx_int_5, __pyx_v_counter1};
            __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_7, 3+__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2228, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_14);
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(3+__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2228, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_1) {
              __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
            }
            __Pyx_INCREF(__pyx_int_4);
            __Pyx_GIVEREF(__pyx_int_4);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_7, __pyx_int_4);
            __Pyx_INCREF(__pyx_int_5);
            __Pyx_GIVEREF(__pyx_int_5);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_7, __pyx_int_5);
            __Pyx_INCREF(__pyx_v_counter1);
            __Pyx_GIVEREF(__pyx_v_counter1);
            PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_7, __pyx_v_counter1);
            __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2228, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF_SET(__pyx_v_ax1, __pyx_t_14);
          __pyx_t_14 = 0;
 2229: 
+2230:             for yy in range(urban_start_regression,numYears_urban):
          __pyx_t_14 = PyTuple_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2230, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_INCREF(__pyx_v_urban_start_regression);
          __Pyx_GIVEREF(__pyx_v_urban_start_regression);
          PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_v_urban_start_regression);
          __Pyx_INCREF(__pyx_v_numYears_urban);
          __Pyx_GIVEREF(__pyx_v_numYears_urban);
          PyTuple_SET_ITEM(__pyx_t_14, 1, __pyx_v_numYears_urban);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2230, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
            __pyx_t_14 = __pyx_t_4; __Pyx_INCREF(__pyx_t_14); __pyx_t_16 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_16 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2230, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_17 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2230, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_14))) {
                if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_16); __Pyx_INCREF(__pyx_t_4); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2230, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_14, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2230, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              } else {
                if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_16); __Pyx_INCREF(__pyx_t_4); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2230, __pyx_L1_error)
                #else
                __pyx_t_4 = PySequence_ITEM(__pyx_t_14, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2230, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                #endif
              }
            } else {
              __pyx_t_4 = __pyx_t_17(__pyx_t_14);
              if (unlikely(!__pyx_t_4)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 2230, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_4);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_4);
            __pyx_t_4 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2231:               sri[yy] = pumping_forecast_dowy[wateryear_day][yy]
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_v_pumping_forecast_dowy, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2231, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_yy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2231, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(PyObject_SetItem(__pyx_v_sri, __pyx_v_yy, __pyx_t_2) < 0)) __PYX_ERR(0, 2231, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2232:               percent[yy] = regression_percent[x][xx][wateryear_day][yy]
            __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear_day); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_yy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2232, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(PyObject_SetItem(__pyx_v_percent, __pyx_v_yy, __pyx_t_4) < 0)) __PYX_ERR(0, 2232, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2233:             ax1.scatter(sri, percent, s=50, c='red', edgecolor='none', alpha=0.7)
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_scatter); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2233, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2233, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_INCREF(__pyx_v_sri);
          __Pyx_GIVEREF(__pyx_v_sri);
          PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_sri);
          __Pyx_INCREF(__pyx_v_percent);
          __Pyx_GIVEREF(__pyx_v_percent);
          PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_v_percent);
          __pyx_t_2 = __Pyx_PyDict_NewPresized(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2233, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_s, __pyx_int_50) < 0) __PYX_ERR(0, 2233, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2233, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_edgecolor, __pyx_n_u_none) < 0) __PYX_ERR(0, 2233, __pyx_L1_error)
          if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_alpha, __pyx_float_0_7) < 0) __PYX_ERR(0, 2233, __pyx_L1_error)
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2233, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2234:             ax1.plot([np.max(sri), 0.0], [(np.max(sri)*coef[0] + coef[1]), coef[1]],c='red')
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_plot); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
            }
          }
          __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_v_sri);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyList_New(2); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_14, 0, __pyx_t_2);
          __Pyx_INCREF(__pyx_float_0_0);
          __Pyx_GIVEREF(__pyx_float_0_0);
          PyList_SET_ITEM(__pyx_t_14, 1, __pyx_float_0_0);
          __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_max); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_21))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_21, function);
            }
          }
          __pyx_t_2 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_21, __pyx_t_4, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_21, __pyx_v_sri);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_v_coef, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_4 = PyNumber_Multiply(__pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_21 = __Pyx_GetItemInt(__pyx_v_coef, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_4 = PyList_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_21);
          PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_21);
          __pyx_t_2 = 0;
          __pyx_t_21 = 0;
          __pyx_t_21 = PyTuple_New(2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_GIVEREF(__pyx_t_14);
          PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_14);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_21, 1, __pyx_t_4);
          __pyx_t_14 = 0;
          __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_c, __pyx_n_u_red) < 0) __PYX_ERR(0, 2234, __pyx_L1_error)
          __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_21, __pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2234, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2235:             ax1.set_xlim([np.min(sri), np.max(sri)])
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_ax1, __pyx_n_s_set_xlim); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_2, function);
            }
          }
          __pyx_t_21 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_sri);
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_max); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_15);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_15, function);
            }
          }
          __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_1, __pyx_v_sri) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_sri);
          __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyList_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_GIVEREF(__pyx_t_21);
          PyList_SET_ITEM(__pyx_t_15, 0, __pyx_t_21);
          __Pyx_GIVEREF(__pyx_t_2);
          PyList_SET_ITEM(__pyx_t_15, 1, __pyx_t_2);
          __pyx_t_21 = 0;
          __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_14 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2235, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2236:             counter1 += 1
          __pyx_t_14 = __Pyx_PyInt_AddObjC(__pyx_v_counter1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2236, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_t_14);
          __pyx_t_14 = 0;
+2237:             if counter1 == 21:
          __pyx_t_14 = __Pyx_PyInt_EqObjC(__pyx_v_counter1, __pyx_int_21, 21, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2237, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2237, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (__pyx_t_5) {
/* … */
          }
+2238:               plt.show()
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_plt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2238, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_show); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2238, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
              __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
              if (likely(__pyx_t_4)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_15, function);
              }
            }
            __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_15);
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2238, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2239:               plt.close()
            __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_plt); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_close); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
              __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4);
              if (likely(__pyx_t_15)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
                __Pyx_INCREF(__pyx_t_15);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_4, function);
              }
            }
            __pyx_t_14 = (__pyx_t_15) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
            __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
            if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2239, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2240:               fig = plt.figure()
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_plt); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_figure); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
              __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
              if (likely(__pyx_t_4)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
                __Pyx_INCREF(__pyx_t_4);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_15, function);
              }
            }
            __pyx_t_14 = (__pyx_t_4) ? __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_4) : __Pyx_PyObject_CallNoArg(__pyx_t_15);
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF_SET(__pyx_v_fig, __pyx_t_14);
            __pyx_t_14 = 0;
+2241:               counter1 = 1
            __Pyx_INCREF(__pyx_int_1);
            __Pyx_DECREF_SET(__pyx_v_counter1, __pyx_int_1);
 2242:         #plt.show()
 2243:         #plt.close()
 2244: 
 2245: 
 2246: 
+2247:     if self.model_mode == 'simulation' or self.model_mode == 'climate_ensemble' or self.model_mode == 'sensitivity':
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_simulation, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!__pyx_t_13) {
  } else {
    __pyx_t_5 = __pyx_t_13;
    goto __pyx_L145_bool_binop_done;
  }
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_climate_ensemble, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!__pyx_t_13) {
  } else {
    __pyx_t_5 = __pyx_t_13;
    goto __pyx_L145_bool_binop_done;
  }
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_13 = (__Pyx_PyUnicode_Equals(__pyx_t_9, __pyx_n_u_sensitivity, Py_EQ)); if (unlikely(__pyx_t_13 < 0)) __PYX_ERR(0, 2247, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_5 = __pyx_t_13;
  __pyx_L145_bool_binop_done:;
  if (__pyx_t_5) {
/* … */
  }
+2248:       ytd_pumping_int = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2248, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_v_ytd_pumping_int = ((PyObject*)__pyx_t_9);
    __pyx_t_9 = 0;
+2249:       for x in urban_list:
    __pyx_t_9 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2249, __pyx_L1_error)
      #else
      __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2249, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12);
      __pyx_t_12 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2250:         x.hist_demand_dict = {}
      __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2250, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict, __pyx_t_12) < 0) __PYX_ERR(0, 2250, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2251:         ytd_pumping_int[x] = np.zeros(numYears_urban)
      __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2251, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2251, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_15);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_15, function);
        }
      }
      __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_14, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_v_numYears_urban);
      __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2251, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_ytd_pumping_int, __pyx_v_x, __pyx_t_12) < 0)) __PYX_ERR(0, 2251, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2252:         x.hist_demand_dict['annual_sorted'] = {}
      __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_n_u_annual_sorted, __pyx_t_12) < 0)) __PYX_ERR(0, 2252, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2253:         x.hist_demand_dict['sorted_index'] = {}
      __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2253, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_n_u_sorted_index, __pyx_t_12) < 0)) __PYX_ERR(0, 2253, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2254:         for wateryear_day in range(0, 365):
      for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
        __pyx_t_12 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_12);
        __pyx_t_12 = 0;
+2255:           x.hist_demand_dict['annual_sorted'][wateryear_day] = np.sort(regression_annual_hro[urban_start_regression:-1])
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_sort); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_INCREF(__pyx_v_urban_start_regression);
        __pyx_t_15 = __pyx_v_urban_start_regression;
        __pyx_t_5 = (__pyx_t_15 == Py_None);
        if (__pyx_t_5) {
          __pyx_t_10 = 0;
        } else {
          __pyx_t_16 = __Pyx_PyIndex_AsSsize_t(__pyx_t_15); if (unlikely((__pyx_t_16 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2255, __pyx_L1_error)
          __pyx_t_10 = __pyx_t_16;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_10, -1L); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        __pyx_t_12 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_14, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_wateryear_day, __pyx_t_12) < 0)) __PYX_ERR(0, 2255, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2256:           x.hist_demand_dict['sorted_index'][wateryear_day] = np.argsort(regression_annual_hro[urban_start_regression:-1])
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_argsort); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_INCREF(__pyx_v_urban_start_regression);
        __pyx_t_15 = __pyx_v_urban_start_regression;
        __pyx_t_5 = (__pyx_t_15 == Py_None);
        if (__pyx_t_5) {
          __pyx_t_10 = 0;
        } else {
          __pyx_t_16 = __Pyx_PyIndex_AsSsize_t(__pyx_t_15); if (unlikely((__pyx_t_16 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2256, __pyx_L1_error)
          __pyx_t_10 = __pyx_t_16;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_10, -1L); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        __pyx_t_12 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_14, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_wateryear_day, __pyx_t_12) < 0)) __PYX_ERR(0, 2256, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
+2257:         x.hist_demand_dict['daily_fractions'] = np.zeros((len(regression_annual[x]) - urban_start_regression,366))
      __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_annual, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_10 = PyObject_Length(__pyx_t_15); if (unlikely(__pyx_t_10 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyInt_FromSsize_t(__pyx_t_10); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_4 = PyNumber_Subtract(__pyx_t_15, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyTuple_New(2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_4);
      __Pyx_INCREF(__pyx_int_366);
      __Pyx_GIVEREF(__pyx_int_366);
      PyTuple_SET_ITEM(__pyx_t_15, 1, __pyx_int_366);
      __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_14);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_14, function);
        }
      }
      __pyx_t_12 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_4, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_15);
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_n_u_daily_fractions, __pyx_t_12) < 0)) __PYX_ERR(0, 2257, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2258:       for x in self.city_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2258, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_12 = __pyx_t_9; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2258, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2258, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2258, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2258, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2258, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2258, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_8(__pyx_t_12);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2258, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2259:         x.hist_demand_dict = {}
      __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2259, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict, __pyx_t_9) < 0) __PYX_ERR(0, 2259, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2260:         ytd_pumping_int[x] = {}
      __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2260, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyDict_SetItem(__pyx_v_ytd_pumping_int, __pyx_v_x, __pyx_t_9) < 0)) __PYX_ERR(0, 2260, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2261:         for xx in x.district_list:
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
        __pyx_t_14 = __pyx_t_9; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2261, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_11 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2261, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_14))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2261, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2261, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2261, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          }
        } else {
          __pyx_t_9 = __pyx_t_11(__pyx_t_14);
          if (unlikely(!__pyx_t_9)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2261, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
        __pyx_t_9 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2262:           x.hist_demand_dict[xx] = {}
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2262, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 2262, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2263:           ytd_pumping_int[x][xx] = np.zeros(numYears_urban)
        __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_15)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_9 = (__pyx_t_15) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_15, __pyx_v_numYears_urban) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_numYears_urban);
        __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 2263, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2264:           x.hist_demand_dict[xx]['annual_sorted'] = {}
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_n_u_annual_sorted, __pyx_t_9) < 0)) __PYX_ERR(0, 2264, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2265:           x.hist_demand_dict[xx]['sorted_index'] = {}
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2265, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2265, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2265, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_sorted_index, __pyx_t_9) < 0)) __PYX_ERR(0, 2265, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2266:           for wateryear_day in range(0, 365):
        for (__pyx_t_22 = 0; __pyx_t_22 < 0x16D; __pyx_t_22+=1) {
          __pyx_t_9 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2266, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_XDECREF_SET(__pyx_v_wateryear_day, __pyx_t_9);
          __pyx_t_9 = 0;
+2267:             x.hist_demand_dict[xx]['annual_sorted'][wateryear_day] = np.sort(regression_annual_hro[urban_start_regression:-1])
          __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sort); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_INCREF(__pyx_v_urban_start_regression);
          __pyx_t_4 = __pyx_v_urban_start_regression;
          __pyx_t_5 = (__pyx_t_4 == Py_None);
          if (__pyx_t_5) {
            __pyx_t_16 = 0;
          } else {
            __pyx_t_18 = __Pyx_PyIndex_AsSsize_t(__pyx_t_4); if (unlikely((__pyx_t_18 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2267, __pyx_L1_error)
            __pyx_t_16 = __pyx_t_18;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_16, -1L); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_15);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_15, function);
            }
          }
          __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_4);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_wateryear_day, __pyx_t_9) < 0)) __PYX_ERR(0, 2267, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2268:             x.hist_demand_dict[xx]['sorted_index'][wateryear_day] = np.argsort(regression_annual_hro[urban_start_regression:-1])
          __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_np); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_argsort); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_INCREF(__pyx_v_urban_start_regression);
          __pyx_t_15 = __pyx_v_urban_start_regression;
          __pyx_t_5 = (__pyx_t_15 == Py_None);
          if (__pyx_t_5) {
            __pyx_t_16 = 0;
          } else {
            __pyx_t_18 = __Pyx_PyIndex_AsSsize_t(__pyx_t_15); if (unlikely((__pyx_t_18 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 2268, __pyx_L1_error)
            __pyx_t_16 = __pyx_t_18;
          }
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyList_GetSlice(__pyx_v_regression_annual_hro, __pyx_t_16, -1L); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_t_15) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_15);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_15, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_wateryear_day, __pyx_t_9) < 0)) __PYX_ERR(0, 2268, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
+2269:           x.hist_demand_dict[xx]['daily_fractions'] = np.zeros((numYears_urban - urban_start_regression,366))
        __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Subtract(__pyx_v_numYears_urban, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4);
        __Pyx_INCREF(__pyx_int_366);
        __Pyx_GIVEREF(__pyx_int_366);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_366);
        __pyx_t_4 = 0;
        __pyx_t_4 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_15, function);
          }
        }
        __pyx_t_9 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_15, __pyx_t_4, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_15, __pyx_t_2);
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_daily_fractions, __pyx_t_9) < 0)) __PYX_ERR(0, 2269, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 2270: 
+2271:       for t in range(0,urban_historical_T):
    __pyx_t_12 = PyTuple_New(2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_int_0);
    __Pyx_INCREF(__pyx_v_urban_historical_T);
    __Pyx_GIVEREF(__pyx_v_urban_historical_T);
    PyTuple_SET_ITEM(__pyx_t_12, 1, __pyx_v_urban_historical_T);
    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_12, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2271, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
      __pyx_t_12 = __pyx_t_14; __Pyx_INCREF(__pyx_t_12); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2271, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_8 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2271, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_12))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_14 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2271, __pyx_L1_error)
          #else
          __pyx_t_14 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2271, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_6); __Pyx_INCREF(__pyx_t_14); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2271, __pyx_L1_error)
          #else
          __pyx_t_14 = PySequence_ITEM(__pyx_t_12, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2271, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          #endif
        }
      } else {
        __pyx_t_14 = __pyx_t_8(__pyx_t_12);
        if (unlikely(!__pyx_t_14)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2271, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_14);
      }
      __Pyx_XDECREF_SET(__pyx_v_t, __pyx_t_14);
      __pyx_t_14 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2272:         dowy = index_urban_dowy[t]
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_dowy, __pyx_v_t); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2272, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_XDECREF_SET(__pyx_v_dowy, __pyx_t_14);
      __pyx_t_14 = 0;
+2273:         wateryear = index_urban_water_year[t]
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_index_urban_water_year, __pyx_v_t); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2273, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_XDECREF_SET(__pyx_v_wateryear, __pyx_t_14);
      __pyx_t_14 = 0;
+2274:         if wateryear >= urban_start_regression:
      __pyx_t_14 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_v_urban_start_regression, Py_GE); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2274, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2274, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      if (__pyx_t_5) {
/* … */
      }
+2275:           for x in urban_list:
        __pyx_t_14 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0;
        for (;;) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2275, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2275, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
          __pyx_t_9 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2276:             predicted_annual_demand = 1000.0 * self.observed_hro_pred[t] * ((self.observed_hro_pred[t] * x.delivery_percent_coefficient[0][dowy][0] + x.delivery_percent_coefficient[0][dowy][1])*max(240.0 - dowy, 0.0)/240.0 + regression_percent[x][dowy][wateryear]*min(dowy, 240.0)/240.0)
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_Multiply(__pyx_float_1000_0, __pyx_t_2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_15, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_4, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_23 = 0.0;
          __pyx_t_15 = __Pyx_PyFloat_SubtractCObj(__pyx_float_240_0, __pyx_v_dowy, 240.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_21 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_1 = PyObject_RichCompare(__pyx_t_21, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_5) {
            __pyx_t_1 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2276, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_t_1;
            __pyx_t_1 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_15);
            __pyx_t_2 = __pyx_t_15;
          }
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyNumber_Multiply(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_15, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_23 = 240.0;
          __Pyx_INCREF(__pyx_v_dowy);
          __pyx_t_4 = __pyx_v_dowy;
          __pyx_t_21 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_21, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_5) {
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2276, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_1 = __pyx_t_3;
            __pyx_t_3 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_4);
            __pyx_t_1 = __pyx_t_4;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Multiply(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_4, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Multiply(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2276, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_XDECREF_SET(__pyx_v_predicted_annual_demand, __pyx_t_1);
          __pyx_t_1 = 0;
+2277:             if predicted_annual_demand - ytd_pumping_int[x][wateryear] > 0.0:
          __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2277, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2277, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2277, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (__pyx_t_5) {
/* … */
            goto __pyx_L163;
          }
+2278:               x.hist_demand_dict['daily_fractions'][wateryear - urban_start_regression][dowy] = (x.pumping[0][t])/(predicted_annual_demand - ytd_pumping_int[x][wateryear])
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = __Pyx_PyNumber_Divide(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_dowy, __pyx_t_9) < 0)) __PYX_ERR(0, 2278, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 2279:             else:
+2280:               x.hist_demand_dict['daily_fractions'][wateryear - urban_start_regression][dowy] = 0.0/365.0
          /*else*/ {
            __pyx_t_9 = PyFloat_FromDouble((0.0 / 365.0)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_dowy, __pyx_t_9) < 0)) __PYX_ERR(0, 2280, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __pyx_L163:;
+2281:             ytd_pumping_int[x][wateryear] += x.pumping[0][t]
          __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_INCREF(__pyx_v_wateryear);
          __pyx_t_4 = __pyx_v_wateryear;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_4, __pyx_t_15) < 0)) __PYX_ERR(0, 2281, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 2282: 
+2283:           for x in self.city_list:
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2283, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
          __pyx_t_9 = __pyx_t_14; __Pyx_INCREF(__pyx_t_9); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
        } else {
          __pyx_t_10 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2283, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2283, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        for (;;) {
          if (likely(!__pyx_t_11)) {
            if (likely(PyList_CheckExact(__pyx_t_9))) {
              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_14 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_14); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2283, __pyx_L1_error)
              #else
              __pyx_t_14 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2283, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              #endif
            } else {
              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_10); __Pyx_INCREF(__pyx_t_14); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2283, __pyx_L1_error)
              #else
              __pyx_t_14 = PySequence_ITEM(__pyx_t_9, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2283, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              #endif
            }
          } else {
            __pyx_t_14 = __pyx_t_11(__pyx_t_9);
            if (unlikely(!__pyx_t_14)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2283, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_14);
          }
          __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_14);
          __pyx_t_14 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2284:             for xx in x.district_list:
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2284, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_4 = __pyx_t_14; __Pyx_INCREF(__pyx_t_4); __pyx_t_16 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_16 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2284, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_17 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2284, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_14); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2284, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2284, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_16); __Pyx_INCREF(__pyx_t_14); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 2284, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2284, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_17(__pyx_t_4);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 2284, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2285:               predicted_annual_demand = 1000.0 * self.observed_hro_pred[t] * ((self.observed_hro_pred[t] * x.delivery_percent_coefficient[xx][dowy][0] + x.delivery_percent_coefficient[xx][dowy][1])*max(240.0 - dowy, 0.0)/240.0 + regression_percent[x][xx][dowy][wateryear]*min(dowy, 240.0)/240.0)
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_Multiply(__pyx_float_1000_0, __pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_observed_hro_pred); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_15, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = PyNumber_Add(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_23 = 0.0;
            __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_240_0, __pyx_v_dowy, 240.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_21 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            if (__pyx_t_5) {
              __pyx_t_21 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_15 = __pyx_t_21;
              __pyx_t_21 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_1);
              __pyx_t_15 = __pyx_t_1;
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_1, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_regression_percent, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_23 = 240.0;
            __Pyx_INCREF(__pyx_v_dowy);
            __pyx_t_1 = __pyx_v_dowy;
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_24 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            if (__pyx_t_5) {
              __pyx_t_24 = PyFloat_FromDouble(__pyx_t_23); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2285, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __pyx_t_21 = __pyx_t_24;
              __pyx_t_24 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_1);
              __pyx_t_21 = __pyx_t_1;
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_1, __pyx_float_240_0, 240.0, 0, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Add(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = PyNumber_Multiply(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2285, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_XDECREF_SET(__pyx_v_predicted_annual_demand, __pyx_t_21);
            __pyx_t_21 = 0;
+2286:               if predicted_annual_demand - ytd_pumping_int[x][xx][wateryear] > 0.0:
            __pyx_t_21 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_21); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __pyx_t_21 = PyObject_RichCompare(__pyx_t_1, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 2286, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            if (__pyx_t_5) {
/* … */
              goto __pyx_L168;
            }
+2287:                 x.hist_demand_dict[xx]['daily_fractions'][wateryear - urban_start_regression][dowy] = (x.pumping[xx][t])/(predicted_annual_demand - ytd_pumping_int[x][xx][wateryear])
              __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = PyNumber_Subtract(__pyx_v_predicted_annual_demand, __pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_21, __pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_t_21); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_v_dowy, __pyx_t_1) < 0)) __PYX_ERR(0, 2287, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2288:               else:
+2289:                 x.hist_demand_dict[xx]['daily_fractions'][wateryear - urban_start_regression][dowy] = 0.0/365.0
            /*else*/ {
              __pyx_t_1 = PyFloat_FromDouble((0.0 / 365.0)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = PyNumber_Subtract(__pyx_v_wateryear, __pyx_v_urban_start_regression); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_21); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_dowy, __pyx_t_1) < 0)) __PYX_ERR(0, 2289, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            }
            __pyx_L168:;
+2290:               ytd_pumping_int[x][xx][wateryear] += x.pumping[xx][t]
            __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_ytd_pumping_int, __pyx_v_x); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_INCREF(__pyx_v_wateryear);
            __pyx_t_1 = __pyx_v_wateryear;
            __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_21, __pyx_t_15); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(0, 2290, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 2291: 
+2292:       for x in self.city_list:
    __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2292, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
      __pyx_t_9 = __pyx_t_12; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2292, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2292, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2292, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_12); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2292, __pyx_L1_error)
          #else
          __pyx_t_12 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2292, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          #endif
        }
      } else {
        __pyx_t_12 = __pyx_t_8(__pyx_t_9);
        if (unlikely(!__pyx_t_12)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2292, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_12);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_12);
      __pyx_t_12 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2293:         x.annual_pumping = {}
      __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2293, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping, __pyx_t_12) < 0) __PYX_ERR(0, 2293, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2294:         x.pumping = {}
      __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_pumping, __pyx_t_12) < 0) __PYX_ERR(0, 2294, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2295:         for xx in x.district_list:
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
        __pyx_t_4 = __pyx_t_12; __Pyx_INCREF(__pyx_t_4); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2295, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_12 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2295, __pyx_L1_error)
            #else
            __pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2295, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_10); __Pyx_INCREF(__pyx_t_12); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2295, __pyx_L1_error)
            #else
            __pyx_t_12 = PySequence_ITEM(__pyx_t_4, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2295, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            #endif
          }
        } else {
          __pyx_t_12 = __pyx_t_11(__pyx_t_4);
          if (unlikely(!__pyx_t_12)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2295, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_12);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_12);
        __pyx_t_12 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2296:           x.annual_pumping[xx] = np.zeros(self.number_years)
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
          }
        }
        __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_14);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 2296, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2297:           x.pumping[xx] = np.zeros(self.T)
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
          }
        }
        __pyx_t_12 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_2, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_1);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 2297, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+2298:       for x in urban_list:
    __pyx_t_9 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2298, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2298, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2299:         x.annual_pumping = {}
      __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2299, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping, __pyx_t_4) < 0) __PYX_ERR(0, 2299, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2300:         x.pumping = {}
      __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_pumping, __pyx_t_4) < 0) __PYX_ERR(0, 2300, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2301:         x.annual_pumping[0] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_14, function);
        }
      }
      __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_12);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_14, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2301, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2302:         x.pumping[0] = np.zeros(self.T)
      __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_np); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_zeros); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_12))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_12);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_12);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_12, function);
        }
      }
      __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_12, __pyx_t_1, __pyx_t_14) : __Pyx_PyObject_CallOneArg(__pyx_t_12, __pyx_t_14);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_12, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2302, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 2303: 
+2304:     for x in urban_list:
  __pyx_t_9 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2304, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2305:       x.ytd_pumping = {}
    __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2305, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping, __pyx_t_4) < 0) __PYX_ERR(0, 2305, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2306:       x.ytd_pumping[0] = np.zeros(self.number_years)
    __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_14))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_14);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_14, function);
      }
    }
    __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_14, __pyx_t_1, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_14, __pyx_t_12);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_14, 0, __pyx_t_4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 2306, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2307:     for x in self.city_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2307, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_4 = __pyx_t_9; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
    __pyx_t_8 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2307, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2307, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_8)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2307, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2307, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 2307, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2307, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_8(__pyx_t_4);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2307, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2308:       x.ytd_pumping = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2308, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping, __pyx_t_9) < 0) __PYX_ERR(0, 2308, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+2309:       for xx in x.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_14 = __pyx_t_9; __Pyx_INCREF(__pyx_t_14); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_11 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2309, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_14))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_14)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2309, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2309, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_10); __Pyx_INCREF(__pyx_t_9); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 2309, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2309, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_11(__pyx_t_14);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2309, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+2310:         x.ytd_pumping[xx] = np.zeros(self.number_years)
      __Pyx_GetModuleGlobalName(__pyx_t_12, __pyx_n_s_np); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_2 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_9 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_12);
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_t_9) < 0)) __PYX_ERR(0, 2310, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 2311: 
 2312: 	###ACTUAL regression coefficients - picked to pass the 'eye test' 
 2313:     #self.southbay.urb_coef[0] = 0.01
 2314:     #self.centralcoast.urb_coef[0] = 0.0
 2315:     #self.socal.urb_coef[0] = 0.5
 2316:     #self.southbay.urb_coef[1] = 104.0
 2317:     #self.centralcoast.urb_coef[1] = 110.0
 2318:     #self.socal.urb_coef[1] = 200.0
 2319: 
 2320: #####################################################################################################################
 2321: #####################################################################################################################
 2322: #####################################################################################################################
 2323: 
 2324: 
 2325: #####################################################################################################################
 2326: #############################     Main simulation (North & South)     ###############################################
 2327: #####################################################################################################################
 2328: 
 2329: 
+2330:   def simulate_north(self,t,swp_release, cvp_release, swp_release2, cvp_release2, swp_pump, cvp_pump):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_49simulate_north(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_49simulate_north = {"simulate_north", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_49simulate_north, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_49simulate_north(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_swp_release = 0;
  PyObject *__pyx_v_cvp_release = 0;
  PyObject *__pyx_v_swp_release2 = 0;
  PyObject *__pyx_v_cvp_release2 = 0;
  PyObject *__pyx_v_swp_pump = 0;
  PyObject *__pyx_v_cvp_pump = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("simulate_north (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_swp_release,&__pyx_n_s_cvp_release,&__pyx_n_s_swp_release2,&__pyx_n_s_cvp_release2,&__pyx_n_s_swp_pump,&__pyx_n_s_cvp_pump,0};
    PyObject* values[8] = {0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 1); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_release)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 2); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_release)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 3); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_release2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 4); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_release2)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 5); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_pump)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 6); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_pump)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, 7); __PYX_ERR(0, 2330, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "simulate_north") < 0)) __PYX_ERR(0, 2330, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 8) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_swp_release = values[2];
    __pyx_v_cvp_release = values[3];
    __pyx_v_swp_release2 = values[4];
    __pyx_v_cvp_release2 = values[5];
    __pyx_v_swp_pump = values[6];
    __pyx_v_cvp_pump = values[7];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("simulate_north", 1, 8, 8, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2330, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.simulate_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_48simulate_north(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_swp_release, __pyx_v_cvp_release, __pyx_v_swp_release2, __pyx_v_cvp_release2, __pyx_v_swp_pump, __pyx_v_cvp_pump);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_48simulate_north(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_swp_release, PyObject *__pyx_v_cvp_release, PyObject *__pyx_v_swp_release2, PyObject *__pyx_v_cvp_release2, PyObject *__pyx_v_swp_pump, PyObject *__pyx_v_cvp_pump) {
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_da = NULL;
  PyObject *__pyx_v_dowy = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_wateryear = NULL;
  PyObject *__pyx_v_year_index = NULL;
  PyObject *__pyx_v_NMI = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_cvp_stored_release = NULL;
  PyObject *__pyx_v_swp_stored_release = NULL;
  PyObject *__pyx_v_cvp_available_storage = NULL;
  PyObject *__pyx_v_swp_available_storage = NULL;
  double __pyx_v_cvp_flood_storage;
  double __pyx_v_swp_flood_storage;
  CYTHON_UNUSED PyObject *__pyx_v_swp_extra = NULL;
  PyObject *__pyx_v_cvp_max = NULL;
  PyObject *__pyx_v_swp_max = NULL;
  PyObject *__pyx_v_proj_surplus = NULL;
  PyObject *__pyx_v_max_pumping = NULL;
  PyObject *__pyx_v_flood_release = NULL;
  PyObject *__pyx_v_flood_volume = NULL;
  PyObject *__pyx_v_swp_over_dead_pool = NULL;
  double __pyx_v_cvp_over_dead_pool;
  PyObject *__pyx_v_cvp_max_final = NULL;
  PyObject *__pyx_v_swp_max_final = NULL;
  PyObject *__pyx_v_cvp_forgone = NULL;
  PyObject *__pyx_v_swp_forgone = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_swp_reduced = NULL;
  PyObject *__pyx_v_cvp_reduced = NULL;
  PyObject *__pyx_v_release_switch = NULL;
  PyObject *__pyx_v_cvp_stored_flow = NULL;
  PyObject *__pyx_v_swp_stored_flow = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__48)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("simulate_north", 0);
  __Pyx_TraceCall("simulate_north", __pyx_f[0], 2330, 0, __PYX_ERR(0, 2330, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_swp_release);
  __Pyx_INCREF(__pyx_v_cvp_release);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.simulate_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_da);
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_wateryear);
  __Pyx_XDECREF(__pyx_v_year_index);
  __Pyx_XDECREF(__pyx_v_NMI);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_cvp_stored_release);
  __Pyx_XDECREF(__pyx_v_swp_stored_release);
  __Pyx_XDECREF(__pyx_v_cvp_available_storage);
  __Pyx_XDECREF(__pyx_v_swp_available_storage);
  __Pyx_XDECREF(__pyx_v_swp_extra);
  __Pyx_XDECREF(__pyx_v_cvp_max);
  __Pyx_XDECREF(__pyx_v_swp_max);
  __Pyx_XDECREF(__pyx_v_proj_surplus);
  __Pyx_XDECREF(__pyx_v_max_pumping);
  __Pyx_XDECREF(__pyx_v_flood_release);
  __Pyx_XDECREF(__pyx_v_flood_volume);
  __Pyx_XDECREF(__pyx_v_swp_over_dead_pool);
  __Pyx_XDECREF(__pyx_v_cvp_max_final);
  __Pyx_XDECREF(__pyx_v_swp_max_final);
  __Pyx_XDECREF(__pyx_v_cvp_forgone);
  __Pyx_XDECREF(__pyx_v_swp_forgone);
  __Pyx_XDECREF(__pyx_v_swp_reduced);
  __Pyx_XDECREF(__pyx_v_cvp_reduced);
  __Pyx_XDECREF(__pyx_v_release_switch);
  __Pyx_XDECREF(__pyx_v_cvp_stored_flow);
  __Pyx_XDECREF(__pyx_v_swp_stored_flow);
  __Pyx_XDECREF(__pyx_v_swp_release);
  __Pyx_XDECREF(__pyx_v_cvp_release);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__113 = PyTuple_Pack(41, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_swp_release, __pyx_n_s_cvp_release, __pyx_n_s_swp_release2, __pyx_n_s_cvp_release2, __pyx_n_s_swp_pump, __pyx_n_s_cvp_pump, __pyx_n_s_d, __pyx_n_s_da, __pyx_n_s_dowy, __pyx_n_s_m, __pyx_n_s_y, __pyx_n_s_wateryear, __pyx_n_s_year_index, __pyx_n_s_NMI, __pyx_n_s_x, __pyx_n_s_cvp_stored_release, __pyx_n_s_swp_stored_release, __pyx_n_s_cvp_available_storage, __pyx_n_s_swp_available_storage, __pyx_n_s_cvp_flood_storage, __pyx_n_s_swp_flood_storage, __pyx_n_s_swp_extra, __pyx_n_s_cvp_max, __pyx_n_s_swp_max, __pyx_n_s_proj_surplus, __pyx_n_s_max_pumping, __pyx_n_s_flood_release, __pyx_n_s_flood_volume, __pyx_n_s_swp_over_dead_pool, __pyx_n_s_cvp_over_dead_pool, __pyx_n_s_cvp_max_final, __pyx_n_s_swp_max_final, __pyx_n_s_cvp_forgone, __pyx_n_s_swp_forgone, __pyx_n_s_swp_reduced, __pyx_n_s_cvp_reduced, __pyx_n_s_release_switch, __pyx_n_s_cvp_stored_flow, __pyx_n_s_swp_stored_flow); if (unlikely(!__pyx_tuple__113)) __PYX_ERR(0, 2330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__113);
  __Pyx_GIVEREF(__pyx_tuple__113);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_49simulate_north, 0, __pyx_n_s_Model_simulate_north, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__48)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2330, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_simulate_north, __pyx_t_2) < 0) __PYX_ERR(0, 2330, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__48 = (PyObject*)__Pyx_PyCode_New(8, 0, 41, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__113, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_simulate_north, 2330, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__48)) __PYX_ERR(0, 2330, __pyx_L1_error)
 2331: 	###Daily Operations###
 2332: 	##Step forward environmental parameters (snow & flow)
 2333:     ##Set Delta operating rules
 2334:     ##Water Balance on each reservoir
 2335:     ##Decisions - release water for delta export, flood control
+2336:     swp_release = 0#turn off any pumping over the E/I ratio 'tax'
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF_SET(__pyx_v_swp_release, __pyx_int_0);
+2337:     cvp_release = 0
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_DECREF_SET(__pyx_v_cvp_release, __pyx_int_0);
 2338: 
+2339:     d = self.day_year[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2339, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_d = __pyx_t_2;
  __pyx_t_2 = 0;
+2340:     da = self.day_month[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2340, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_da = __pyx_t_1;
  __pyx_t_1 = 0;
+2341:     dowy = self.dowy[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2341, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_dowy = __pyx_t_2;
  __pyx_t_2 = 0;
+2342:     m = self.month[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_m = __pyx_t_1;
  __pyx_t_1 = 0;
+2343:     y = self.year[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2343, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_y = __pyx_t_2;
  __pyx_t_2 = 0;
+2344:     wateryear = self.water_year[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_water_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2344, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_wateryear = __pyx_t_1;
  __pyx_t_1 = 0;
+2345:     year_index = y - self.starting_year
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_y, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2345, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_year_index = __pyx_t_2;
  __pyx_t_2 = 0;
 2346: 
 2347:     ##WATER YEAR TYPE CLASSIFICATION (for operating rules)
 2348:     ##WYT uses flow forecasts - gets set every day, may want to decrease frequency (i.e. every month, season)
+2349:     NMI = self.calc_wytypes(t,dowy)#NMI (new melones index) - used as input for vernalis control rules
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calc_wytypes); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2349, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy};
    __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2349, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_v_t, __pyx_v_dowy};
    __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2349, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_2);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_dowy);
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_NMI = __pyx_t_2;
  __pyx_t_2 = 0;
 2350: 
 2351: 	##REAL-WORLD RULE ADJUSTMENTS
 2352: 	##Updates to reflect SJRR & Yuba Accalfews_srcs occuring during historical time period (1996-2016)
+2353:     if self.model_mode == 'validation':
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2353, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2353, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
/* … */
  }
+2354:       self.update_regulations_north(t,dowy, year_index + self.starting_year)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_regulations_north); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2354, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_4 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_4 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2354, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2354, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_4, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2354, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2355: 
 2356: 	####NON-PROJECT USES
 2357:     ##Find out if reservoir releases need to be made for in-stream uses
+2358:     for x in self.reservoir_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_8 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2358, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 2358, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2358, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2358, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_2); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2358, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2358, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_9(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2358, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2359:       x.rights_call(x.downstream[t])
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights_call); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_downstream); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_3, __pyx_t_5) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_5);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2359, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2360:     ##any additional losses before the delta inflow (.downstream member only accounts to downstream trib gauge)
 2361: 	##must be made up by releases from Shasta and New Melones, respectively
 2362:     #self.newmelones.rights_call(self.delta.gains_sj[t-1],1)
 2363: 
 2364:     ##FIND MINIMUM ENVIRONMENTAL RELEASES
 2365:     #San Joaquin Tributaries
+2366:     for x in [self.newmelones, self.donpedro, self.exchequer]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_7);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_8 >= 3) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2366, __pyx_L1_error)
    #else
    __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2366, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2367:       x.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], self.delta.forecastSJWYT)
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_first_d_of_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSJWYT); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2367, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_4 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_4 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[7] = {__pyx_t_1, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_3, __pyx_t_10};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2367, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[7] = {__pyx_t_1, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_3, __pyx_t_10};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2367, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    } else
    #endif
    {
      __pyx_t_11 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2367, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_4, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_d);
      __Pyx_GIVEREF(__pyx_v_d);
      PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_4, __pyx_v_d);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_4, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_4, __pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_4, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_11, 5+__pyx_t_4, __pyx_t_10);
      __pyx_t_3 = 0;
      __pyx_t_10 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2367, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2368: 	#Sacramento Tributaries
+2369:     self.oroville.set_oct_nov_rule(t, m)
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_set_oct_nov_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_t, __pyx_v_m};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2369, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_t, __pyx_v_m};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2369, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  {
    __pyx_t_11 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_4, __pyx_v_m);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2369, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2370:     for x in [self.shasta, self.oroville, self.yuba, self.folsom]:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = PyTuple_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_10, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_10, 2, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_10, 3, __pyx_t_5);
  __pyx_t_7 = 0;
  __pyx_t_2 = 0;
  __pyx_t_11 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  for (;;) {
    if (__pyx_t_8 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2370, __pyx_L1_error)
    #else
    __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2370, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2371:       x.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], self.delta.forecastSCWYT)
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_first_d_of_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2371, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_4 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
        __pyx_t_4 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_11)) {
      PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_7, __pyx_t_3};
      __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2371, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
      PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_7, __pyx_t_3};
      __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2371, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_1 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2371, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_4, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_d);
      __Pyx_GIVEREF(__pyx_v_d);
      PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_4, __pyx_v_d);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_4, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_4, __pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_4, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_4, __pyx_t_3);
      __pyx_t_7 = 0;
      __pyx_t_3 = 0;
      __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_1, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2371, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 2372:     ##MINIMUM FLOW AT VERNALIS GAUGE(SAN JOAQUIN DELTA INFLOW)
 2373:     #from self.reservoir.release_environmental() function:
 2374: 	#self.reservoir.gains_to_delta
 2375:     #self.reservoir.envmin
+2376:     self.delta.vernalis_gains = self.newmelones.gains_to_delta + self.donpedro.gains_to_delta + self.exchequer.gains_to_delta + self.delta.gains_sj[t]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_gains_to_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_gains_to_delta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_10, __pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_gains_to_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = PyNumber_Add(__pyx_t_5, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_gains_sj); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_11, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_10, __pyx_n_s_vernalis_gains, __pyx_t_5) < 0) __PYX_ERR(0, 2376, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2377:     self.delta.vernalis_gains += self.newmelones.envmin + self.donpedro.envmin + self.exchequer.envmin
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_vernalis_gains); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_envmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_envmin); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_envmin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_11, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_10, __pyx_n_s_vernalis_gains, __pyx_t_1) < 0) __PYX_ERR(0, 2377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 2378:     #find additional releases for vernalis control using self.delta.vernalis_gains
+2379:     self.exchequer.din, self.donpedro.din, self.newmelones.din  = self.delta.calc_vernalis_rule(t,d,y,m,dowy,NMI)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_calc_vernalis_rule); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[7] = {__pyx_t_1, __pyx_v_t, __pyx_v_d, __pyx_v_y, __pyx_v_m, __pyx_v_dowy, __pyx_v_NMI};
    __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[7] = {__pyx_t_1, __pyx_v_t, __pyx_v_d, __pyx_v_y, __pyx_v_m, __pyx_v_dowy, __pyx_v_NMI};
    __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_1) {
      __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_GIVEREF(__pyx_v_d);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_4, __pyx_v_d);
    __Pyx_INCREF(__pyx_v_y);
    __Pyx_GIVEREF(__pyx_v_y);
    PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_4, __pyx_v_y);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_NMI);
    __Pyx_GIVEREF(__pyx_v_NMI);
    PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_4, __pyx_v_NMI);
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_5, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) {
    PyObject* sequence = __pyx_t_10;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 3)) {
      if (size > 3) __Pyx_RaiseTooManyValuesError(3);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2379, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_1 = PyTuple_GET_ITEM(sequence, 2); 
    } else {
      __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_1 = PyList_GET_ITEM(sequence, 2); 
    }
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_1);
    #else
    __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2379, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
    index = 0; __pyx_t_3 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_3)) goto __pyx_L10_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    index = 1; __pyx_t_5 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_5)) goto __pyx_L10_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 2; __pyx_t_1 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_1)) goto __pyx_L10_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 3) < 0) __PYX_ERR(0, 2379, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    goto __pyx_L11_unpacking_done;
    __pyx_L10_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2379, __pyx_L1_error)
    __pyx_L11_unpacking_done:;
  }
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_11, __pyx_n_s_din, __pyx_t_3) < 0) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_11, __pyx_n_s_din, __pyx_t_5) < 0) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_11, __pyx_n_s_din, __pyx_t_1) < 0) __PYX_ERR(0, 2379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2380:     self.delta.vernalis_gains += self.exchequer.din + self.donpedro.din + self.newmelones.din
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_vernalis_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_din); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_din); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_din); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = PyNumber_Add(__pyx_t_5, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_10, __pyx_n_s_vernalis_gains, __pyx_t_3) < 0) __PYX_ERR(0, 2380, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 2381: 
 2382: 	##MINIMUM FLOW AT RIO VIST GAUGE (SACRAMENTO DELTA INFLOW)
+2383:     for x in [self.shasta, self.oroville, self.yuba, self.folsom]:
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_1);
  __pyx_t_10 = 0;
  __pyx_t_3 = 0;
  __pyx_t_11 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_8 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2383, __pyx_L1_error)
    #else
    __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2383, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2384:       x.find_available_storage(t, m, da, dowy)
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_available_storage); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2384, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = NULL;
    __pyx_t_4 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_11, function);
        __pyx_t_4 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_11)) {
      PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2384, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
      PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2384, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_10 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_4, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_4, __pyx_v_dowy);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_10, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2384, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2385:     #additional releases to meet rio vista minimums shared by Sacramento Reservoirs
+2386:     cvp_stored_release = self.shasta.envmin + self.folsom.envmin
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_envmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_envmin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_5, __pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_v_cvp_stored_release = __pyx_t_1;
  __pyx_t_1 = 0;
+2387:     swp_stored_release = self.oroville.envmin + self.yuba.envmin
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_envmin); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_envmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_swp_stored_release = __pyx_t_1;
  __pyx_t_1 = 0;
 2388:     #unstored flow at rio vista comes from tributary gains, environmental releases and sacramento river gains
+2389:     self.delta.rio_gains = self.delta.gains_sac[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_gains_sac); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_rio_gains, __pyx_t_1) < 0) __PYX_ERR(0, 2389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2390:     for x in [self.shasta, self.oroville, self.yuba, self.folsom]:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_10);
  __pyx_t_5 = 0;
  __pyx_t_1 = 0;
  __pyx_t_11 = 0;
  __pyx_t_10 = 0;
  __pyx_t_10 = __pyx_t_3; __Pyx_INCREF(__pyx_t_10); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (__pyx_t_8 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_8); __Pyx_INCREF(__pyx_t_3); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2390, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_10, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2390, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2391:       self.delta.rio_gains += x.gains_to_delta + x.envmin
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_gains); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_gains_to_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_envmin); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PyNumber_Add(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_rio_gains, __pyx_t_5) < 0) __PYX_ERR(0, 2391, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 2392:     #share rio vista requirements among Sacramento Reservoirs based on self.resevoir.availale_storage
+2393:     self.shasta.din, self.oroville.din = self.delta.calc_rio_vista_rule(t, m, cvp_stored_release, swp_stored_release)
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_calc_rio_vista_rule); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_cvp_stored_release, __pyx_v_swp_stored_release};
    __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_cvp_stored_release, __pyx_v_swp_stored_release};
    __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_cvp_stored_release);
    __Pyx_GIVEREF(__pyx_v_cvp_stored_release);
    PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_4, __pyx_v_cvp_stored_release);
    __Pyx_INCREF(__pyx_v_swp_stored_release);
    __Pyx_GIVEREF(__pyx_v_swp_stored_release);
    PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_4, __pyx_v_swp_stored_release);
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) {
    PyObject* sequence = __pyx_t_10;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2393, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_7);
    #else
    __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_5 = __pyx_t_12(__pyx_t_3); if (unlikely(!__pyx_t_5)) goto __pyx_L16_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    index = 1; __pyx_t_7 = __pyx_t_12(__pyx_t_3); if (unlikely(!__pyx_t_7)) goto __pyx_L16_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_3), 2) < 0) __PYX_ERR(0, 2393, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L17_unpacking_done;
    __pyx_L16_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2393, __pyx_L1_error)
    __pyx_L17_unpacking_done:;
  }
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_din, __pyx_t_5) < 0) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_din, __pyx_t_7) < 0) __PYX_ERR(0, 2393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 2394: 
 2395:     ##MINIMUM DELTA OUTFLOW REQUIREMENTS
 2396:     #flows to delta come from vernalis, rio vista, and the 'eastside streams' (delta gains)
+2397:     self.delta.total_inflow = self.delta.eastside_streams[t] + self.delta.rio_gains + self.delta.vernalis_gains
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_eastside_streams); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_rio_gains); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Add(__pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_vernalis_gains); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_10, __pyx_n_s_total_inflow, __pyx_t_5) < 0) __PYX_ERR(0, 2397, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+2398:     cvp_stored_release += self.shasta.din
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_din); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_cvp_stored_release, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2398, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF_SET(__pyx_v_cvp_stored_release, __pyx_t_10);
  __pyx_t_10 = 0;
+2399:     swp_stored_release += self.oroville.din
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_din); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_swp_stored_release, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2399, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF_SET(__pyx_v_swp_stored_release, __pyx_t_10);
  __pyx_t_10 = 0;
 2400: 	##additional releases for delta outflow split between cvp/swp reservoirs
+2401:     self.shasta.dout, self.oroville.dout = self.delta.calc_outflow_release(t,m,dowy, cvp_stored_release, swp_stored_release)
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_calc_outflow_release); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_cvp_stored_release, __pyx_v_swp_stored_release};
    __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[6] = {__pyx_t_5, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_cvp_stored_release, __pyx_v_swp_stored_release};
    __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_4, 5+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_10);
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(5+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_cvp_stored_release);
    __Pyx_GIVEREF(__pyx_v_cvp_stored_release);
    PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_v_cvp_stored_release);
    __Pyx_INCREF(__pyx_v_swp_stored_release);
    __Pyx_GIVEREF(__pyx_v_swp_stored_release);
    PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_4, __pyx_v_swp_stored_release);
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_10))) || (PyList_CheckExact(__pyx_t_10))) {
    PyObject* sequence = __pyx_t_10;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2401, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2401, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext;
    index = 0; __pyx_t_7 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    index = 1; __pyx_t_3 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_3)) goto __pyx_L18_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2401, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L19_unpacking_done;
    __pyx_L18_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2401, __pyx_L1_error)
    __pyx_L19_unpacking_done:;
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_dout, __pyx_t_7) < 0) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_dout, __pyx_t_3) < 0) __PYX_ERR(0, 2401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2402: 
 2403: 	#TOTAL AVAILABLE PROJECT STORAGE
 2404: 	#based on snowpack based forecast (pre-processed) + current storage
+2405:     cvp_available_storage = max(self.folsom.available_storage[t],0.0) + max(self.shasta.available_storage[t],0.0)
  __pyx_t_13 = 0.0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_7 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_6) {
    __pyx_t_5 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __pyx_t_5;
    __pyx_t_5 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_3 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_13 = 0.0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_7 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = PyObject_RichCompare(__pyx_t_7, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__pyx_t_6) {
    __pyx_t_11 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2405, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_5 = __pyx_t_11;
    __pyx_t_11 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_5 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Add(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_cvp_available_storage = __pyx_t_10;
  __pyx_t_10 = 0;
+2406:     swp_available_storage = max(self.oroville.available_storage[t],0.0) + max(self.yuba.available_storage[t],0.0)
  __pyx_t_13 = 0.0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__pyx_t_6) {
    __pyx_t_11 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_5 = __pyx_t_11;
    __pyx_t_11 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_5 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_13 = 0.0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_t); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_6) {
    __pyx_t_7 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2406, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_11 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = PyNumber_Add(__pyx_t_5, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2406, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_v_swp_available_storage = __pyx_t_10;
  __pyx_t_10 = 0;
+2407:     cvp_flood_storage = 0.0
  __pyx_v_cvp_flood_storage = 0.0;
+2408:     swp_flood_storage = 0.0
  __pyx_v_swp_flood_storage = 0.0;
 2409:     #some 'saved' storage in oroville can be used to make non-taxed releases
+2410:     swp_extra = self.oroville.use_saved_storage(t, m, dowy, self.delta.forecastSCWYT)
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_use_saved_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2410, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_t_7};
    __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2410, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_t_7};
    __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2410, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2410, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_11) {
      __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_11); __pyx_t_11 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_t_7);
    __pyx_t_7 = 0;
    __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_3, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2410, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_swp_extra = __pyx_t_10;
  __pyx_t_10 = 0;
 2411:     #project if flood pool will be exceeded in the future & find min release rate to avoid reaching the flood pool
 2412: 	#monthly flow projections from self.reservoir.create_flow_shapes (i.e. flood available water)
+2413:     for x in [self.shasta, self.folsom, self.oroville, self.yuba]:
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = PyTuple_New(4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2413, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_10);
  PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_10);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_11, 1, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_11, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_11, 3, __pyx_t_7);
  __pyx_t_10 = 0;
  __pyx_t_5 = 0;
  __pyx_t_3 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  for (;;) {
    if (__pyx_t_8 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2413, __pyx_L1_error)
    #else
    __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_11);
    __pyx_t_11 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2414:       x.find_flow_pumping(t, m, dowy, year_index, self.days_in_month, self.dowy_eom, self.delta.forecastSCWYT, 'env')
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_flow_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2414, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_4 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_4 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[9] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_t_5, __pyx_t_10, __pyx_t_2, __pyx_n_u_env};
      __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 8+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2414, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[9] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_t_5, __pyx_t_10, __pyx_t_2, __pyx_n_u_env};
      __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 8+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2414, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_14 = PyTuple_New(8+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_10);
      PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_t_10);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_4, __pyx_t_2);
      __Pyx_INCREF(__pyx_n_u_env);
      __Pyx_GIVEREF(__pyx_n_u_env);
      PyTuple_SET_ITEM(__pyx_t_14, 7+__pyx_t_4, __pyx_n_u_env);
      __pyx_t_5 = 0;
      __pyx_t_10 = 0;
      __pyx_t_2 = 0;
      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_14, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2415:       x.days_til_full[t] = min(x.numdays_fillup['env'], x.numdays_fillup['lookahead'])
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_env); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_11 = __pyx_t_3;
    } else {
      __Pyx_INCREF(__pyx_t_14);
      __pyx_t_11 = __pyx_t_14;
    }
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __pyx_t_11;
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_days_til_full); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_v_t, __pyx_t_3) < 0)) __PYX_ERR(0, 2415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 2416: 
 2417: 	###DETERMINE RELEASES REQUIRED FOR DESIRED PUMPING
 2418:     ###Uses gains and environmental releases to determine additional releases required for
 2419: 	###pumping (if desired), given inflow/export requirements, pump constraints, and CVP/SWP sharing of unstored flows
 2420: 	#at-the-pump limits (from BiOps)
+2421:     cvp_max, swp_max = self.delta.find_max_pumping(d, dowy, t, self.delta.forecastSCWYT)
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_find_max_pumping); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_forecastSCWYT); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2421, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_d, __pyx_v_dowy, __pyx_v_t, __pyx_t_14};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_d, __pyx_v_dowy, __pyx_v_t, __pyx_t_14};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  } else
  #endif
  {
    __pyx_t_2 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_GIVEREF(__pyx_v_d);
    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_d);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_4, __pyx_v_t);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_4, __pyx_t_14);
    __pyx_t_14 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2421, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_14 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_14)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_14); if (unlikely(!__pyx_t_11)) goto __pyx_L22_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_2 = __pyx_t_12(__pyx_t_14); if (unlikely(!__pyx_t_2)) goto __pyx_L22_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_14), 2) < 0) __PYX_ERR(0, 2421, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    goto __pyx_L23_unpacking_done;
    __pyx_L22_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2421, __pyx_L1_error)
    __pyx_L23_unpacking_done:;
  }
  __pyx_v_cvp_max = __pyx_t_11;
  __pyx_t_11 = 0;
  __pyx_v_swp_max = __pyx_t_2;
  __pyx_t_2 = 0;
 2422:     #OMR rule limits
+2423:     cvp_max, swp_max = self.delta.meet_OMR_requirement(t, m, y, dowy,cvp_max, swp_max)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_meet_OMR_requirement); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2423, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_dowy, __pyx_v_cvp_max, __pyx_v_swp_max};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_dowy, __pyx_v_cvp_max, __pyx_v_swp_max};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 6+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_y);
    __Pyx_GIVEREF(__pyx_v_y);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_v_y);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_cvp_max);
    __Pyx_GIVEREF(__pyx_v_cvp_max);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_v_cvp_max);
    __Pyx_INCREF(__pyx_v_swp_max);
    __Pyx_GIVEREF(__pyx_v_swp_max);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_v_swp_max);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2423, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_11)) goto __pyx_L24_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_14 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L24_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_2), 2) < 0) __PYX_ERR(0, 2423, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L25_unpacking_done;
    __pyx_L24_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2423, __pyx_L1_error)
    __pyx_L25_unpacking_done:;
  }
  __Pyx_DECREF_SET(__pyx_v_cvp_max, __pyx_t_11);
  __pyx_t_11 = 0;
  __Pyx_DECREF_SET(__pyx_v_swp_max, __pyx_t_14);
  __pyx_t_14 = 0;
 2424: 
+2425:     proj_surplus, max_pumping = self.proj_gains(t, dowy, m, year_index)
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_proj_gains); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_11 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_11)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_11);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_14)) {
    PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
    PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 4+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  {
    __pyx_t_2 = PyTuple_New(4+__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__pyx_t_11) {
      __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_11); __pyx_t_11 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_v_year_index);
    PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_4, __pyx_v_year_index);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2425, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_14 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_14);
    __Pyx_INCREF(__pyx_t_2);
    #else
    __pyx_t_14 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_11 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_11)->tp_iternext;
    index = 0; __pyx_t_14 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_14)) goto __pyx_L26_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    index = 1; __pyx_t_2 = __pyx_t_12(__pyx_t_11); if (unlikely(!__pyx_t_2)) goto __pyx_L26_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_11), 2) < 0) __PYX_ERR(0, 2425, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    goto __pyx_L27_unpacking_done;
    __pyx_L26_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2425, __pyx_L1_error)
    __pyx_L27_unpacking_done:;
  }
  __pyx_v_proj_surplus = __pyx_t_14;
  __pyx_t_14 = 0;
  __pyx_v_max_pumping = __pyx_t_2;
  __pyx_t_2 = 0;
+2426:     flood_release = {}
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2426, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v_flood_release = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;
+2427:     flood_volume = {}
  __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2427, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_v_flood_volume = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;
 2428: 	##Releases in anticipation of flood pool encroachment (not required by flood rules)
+2429:     flood_release['swp'] = self.oroville.min_daily_uncontrolled
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_flood_release, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 2429, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2430:     flood_release['cvp'] = self.shasta.min_daily_uncontrolled
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_flood_release, __pyx_n_u_cvp, __pyx_t_7) < 0)) __PYX_ERR(0, 2430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2431:     flood_volume['swp'] = self.oroville.uncontrolled_available
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_uncontrolled_available); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_flood_volume, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 2431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2432:     flood_volume['cvp'] = self.shasta.uncontrolled_available
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_uncontrolled_available); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2432, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_flood_volume, __pyx_n_u_cvp, __pyx_t_7) < 0)) __PYX_ERR(0, 2432, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2433:     swp_over_dead_pool = self.oroville.find_emergency_supply(t, m, dowy)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_find_emergency_supply); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_14);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_14, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_14)) {
    PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_dowy};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2433, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
    PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_dowy};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_4, 3+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2433, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  {
    __pyx_t_11 = PyTuple_New(3+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    if (__pyx_t_2) {
      __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_2); __pyx_t_2 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_4, __pyx_v_dowy);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_11, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2433, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  }
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_v_swp_over_dead_pool = __pyx_t_7;
  __pyx_t_7 = 0;
+2434:     cvp_over_dead_pool = 0.0
  __pyx_v_cvp_over_dead_pool = 0.0;
 2435: 	##Distribute 'available storage' seasonally to maximize pumping under E/I ratio requirements (i.e., pump when E/I ratio is highest)
+2436:     cvp_max_final, swp_max_final = self.delta.find_release(t, m, y, year_index, dowy, self.days_in_month, self.dowy_eom, cvp_max, swp_max, cvp_available_storage, swp_available_storage, cvp_release, swp_release, proj_surplus, max_pumping)
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_find_release); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2436, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[16] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_dowy, __pyx_t_14, __pyx_t_2, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_v_cvp_release, __pyx_v_swp_release, __pyx_v_proj_surplus, __pyx_v_max_pumping};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 15+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[16] = {__pyx_t_3, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_dowy, __pyx_t_14, __pyx_t_2, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_v_cvp_release, __pyx_v_swp_release, __pyx_v_proj_surplus, __pyx_v_max_pumping};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 15+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_10 = PyTuple_New(15+__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_y);
    __Pyx_GIVEREF(__pyx_v_y);
    PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_4, __pyx_v_y);
    __Pyx_INCREF(__pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_v_year_index);
    PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_4, __pyx_v_year_index);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_10, 4+__pyx_t_4, __pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_10, 5+__pyx_t_4, __pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_10, 6+__pyx_t_4, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_cvp_max);
    __Pyx_GIVEREF(__pyx_v_cvp_max);
    PyTuple_SET_ITEM(__pyx_t_10, 7+__pyx_t_4, __pyx_v_cvp_max);
    __Pyx_INCREF(__pyx_v_swp_max);
    __Pyx_GIVEREF(__pyx_v_swp_max);
    PyTuple_SET_ITEM(__pyx_t_10, 8+__pyx_t_4, __pyx_v_swp_max);
    __Pyx_INCREF(__pyx_v_cvp_available_storage);
    __Pyx_GIVEREF(__pyx_v_cvp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_10, 9+__pyx_t_4, __pyx_v_cvp_available_storage);
    __Pyx_INCREF(__pyx_v_swp_available_storage);
    __Pyx_GIVEREF(__pyx_v_swp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_10, 10+__pyx_t_4, __pyx_v_swp_available_storage);
    __Pyx_INCREF(__pyx_v_cvp_release);
    __Pyx_GIVEREF(__pyx_v_cvp_release);
    PyTuple_SET_ITEM(__pyx_t_10, 11+__pyx_t_4, __pyx_v_cvp_release);
    __Pyx_INCREF(__pyx_v_swp_release);
    __Pyx_GIVEREF(__pyx_v_swp_release);
    PyTuple_SET_ITEM(__pyx_t_10, 12+__pyx_t_4, __pyx_v_swp_release);
    __Pyx_INCREF(__pyx_v_proj_surplus);
    __Pyx_GIVEREF(__pyx_v_proj_surplus);
    PyTuple_SET_ITEM(__pyx_t_10, 13+__pyx_t_4, __pyx_v_proj_surplus);
    __Pyx_INCREF(__pyx_v_max_pumping);
    __Pyx_GIVEREF(__pyx_v_max_pumping);
    PyTuple_SET_ITEM(__pyx_t_10, 14+__pyx_t_4, __pyx_v_max_pumping);
    __pyx_t_14 = 0;
    __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_10, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2436, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_10 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_10 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_10);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_10 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2436, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_11)) goto __pyx_L28_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_10 = __pyx_t_12(__pyx_t_2); if (unlikely(!__pyx_t_10)) goto __pyx_L28_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_10);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_2), 2) < 0) __PYX_ERR(0, 2436, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L29_unpacking_done;
    __pyx_L28_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2436, __pyx_L1_error)
    __pyx_L29_unpacking_done:;
  }
  __pyx_v_cvp_max_final = __pyx_t_11;
  __pyx_t_11 = 0;
  __pyx_v_swp_max_final = __pyx_t_10;
  __pyx_t_10 = 0;
 2437: 
 2438:     #if pumping is turned 'off' (b/c SL conditions), calculate how much forgone pumping to take away from SL carryover storage (southern model input)
+2439:     cvp_forgone = max(cvp_max - cvp_pump, 0.0)
  __pyx_t_13 = 0.0;
  __pyx_t_7 = PyNumber_Subtract(__pyx_v_cvp_max, __pyx_v_cvp_pump); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_11, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2439, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
    __pyx_t_2 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = __pyx_t_2;
    __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_10 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_10;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_v_cvp_forgone = __pyx_t_7;
  __pyx_t_7 = 0;
+2440:     swp_forgone = max(swp_max - swp_pump, 0.0)
  __pyx_t_13 = 0.0;
  __pyx_t_7 = PyNumber_Subtract(__pyx_v_swp_max, __pyx_v_swp_pump); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2440, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_11 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2440, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if (__pyx_t_6) {
    __pyx_t_11 = PyFloat_FromDouble(__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_10 = __pyx_t_11;
    __pyx_t_11 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_10 = __pyx_t_7;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_10;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_v_swp_forgone = __pyx_t_7;
  __pyx_t_7 = 0;
 2441:     #swp_forgone, swp_max_final = self.delta.hypothetical_pumping(t, m, swp_max, swp_max_final, swp_release2, 0.45)
 2442:     #find additional releases to pump at the desired levels
+2443:     cvp_max = min(cvp_max, cvp_pump)#don't release 'tax free' pumping in excess of storage capacity at SL
  __Pyx_INCREF(__pyx_v_cvp_pump);
  __pyx_t_7 = __pyx_v_cvp_pump;
  __Pyx_INCREF(__pyx_v_cvp_max);
  __pyx_t_10 = __pyx_v_cvp_max;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2443, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2443, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_11 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_11 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_11;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF_SET(__pyx_v_cvp_max, __pyx_t_7);
  __pyx_t_7 = 0;
+2444:     swp_max = min(swp_max, swp_pump)#don't release 'tax free' pumping in excess of storage capacity at SL
  __Pyx_INCREF(__pyx_v_swp_pump);
  __pyx_t_7 = __pyx_v_swp_pump;
  __Pyx_INCREF(__pyx_v_swp_max);
  __pyx_t_11 = __pyx_v_swp_max;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2444, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_10 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_10 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_10;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF_SET(__pyx_v_swp_max, __pyx_t_7);
  __pyx_t_7 = 0;
+2445:     cvp_max_final = min(cvp_max_final, cvp_pump)
  __Pyx_INCREF(__pyx_v_cvp_pump);
  __pyx_t_7 = __pyx_v_cvp_pump;
  __Pyx_INCREF(__pyx_v_cvp_max_final);
  __pyx_t_10 = __pyx_v_cvp_max_final;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2445, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2445, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_11 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_10);
    __pyx_t_11 = __pyx_t_10;
  }
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_11;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF_SET(__pyx_v_cvp_max_final, __pyx_t_7);
  __pyx_t_7 = 0;
+2446:     swp_max_final = min(swp_max_final, swp_pump)
  __Pyx_INCREF(__pyx_v_swp_pump);
  __pyx_t_7 = __pyx_v_swp_pump;
  __Pyx_INCREF(__pyx_v_swp_max_final);
  __pyx_t_11 = __pyx_v_swp_max_final;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2446, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2446, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_10 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_10 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_10;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __Pyx_DECREF_SET(__pyx_v_swp_max_final, __pyx_t_7);
  __pyx_t_7 = 0;
 2447:     #calculates releases to pump at desired levels (either cvp/swp_max or non-taxed levels, based on min outflow & i/e rules)
+2448:     swp_reduced, cvp_reduced = self.delta.calc_flow_bounds(t, m, y, year_index, d, dowy, self.dowy_eom, cvp_max_final, swp_max_final, cvp_max, swp_max, cvp_release2, swp_release2, cvp_available_storage, swp_available_storage, flood_release['cvp'], flood_release['swp'], swp_over_dead_pool, cvp_over_dead_pool, flood_volume['swp'], flood_volume['cvp'], min(self.oroville.numdays_fillup['env'],self.oroville.numdays_fillup['lookahead']), min(self.shasta.numdays_fillup['env'],self.shasta.numdays_fillup['lookahead']) )
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_calc_flow_bounds); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
  __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_10);
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_flood_release, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_release, __pyx_n_u_swp); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_cvp_over_dead_pool); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_flood_volume, __pyx_n_u_swp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_flood_volume, __pyx_n_u_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_n_u_env); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_18 = PyObject_RichCompare(__pyx_t_15, __pyx_t_16, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_15);
    __pyx_t_17 = __pyx_t_15;
  } else {
    __Pyx_INCREF(__pyx_t_16);
    __pyx_t_17 = __pyx_t_16;
  }
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_15, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_18, __pyx_n_u_env); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_19 = PyObject_RichCompare(__pyx_t_15, __pyx_t_16, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_15);
    __pyx_t_18 = __pyx_t_15;
  } else {
    __Pyx_INCREF(__pyx_t_16);
    __pyx_t_18 = __pyx_t_16;
  }
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  __pyx_t_15 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_15)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_15);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[24] = {__pyx_t_15, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_d, __pyx_v_dowy, __pyx_t_10, __pyx_v_cvp_max_final, __pyx_v_swp_max_final, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_release2, __pyx_v_swp_release2, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_t_2, __pyx_t_14, __pyx_v_swp_over_dead_pool, __pyx_t_3, __pyx_t_5, __pyx_t_1, __pyx_t_17, __pyx_t_18};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 23+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[24] = {__pyx_t_15, __pyx_v_t, __pyx_v_m, __pyx_v_y, __pyx_v_year_index, __pyx_v_d, __pyx_v_dowy, __pyx_t_10, __pyx_v_cvp_max_final, __pyx_v_swp_max_final, __pyx_v_cvp_max, __pyx_v_swp_max, __pyx_v_cvp_release2, __pyx_v_swp_release2, __pyx_v_cvp_available_storage, __pyx_v_swp_available_storage, __pyx_t_2, __pyx_t_14, __pyx_v_swp_over_dead_pool, __pyx_t_3, __pyx_t_5, __pyx_t_1, __pyx_t_17, __pyx_t_18};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 23+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  } else
  #endif
  {
    __pyx_t_16 = PyTuple_New(23+__pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    if (__pyx_t_15) {
      __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_15); __pyx_t_15 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_y);
    __Pyx_GIVEREF(__pyx_v_y);
    PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_4, __pyx_v_y);
    __Pyx_INCREF(__pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_v_year_index);
    PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_4, __pyx_v_year_index);
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_GIVEREF(__pyx_v_d);
    PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_4, __pyx_v_d);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_16, 5+__pyx_t_4, __pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_t_10);
    PyTuple_SET_ITEM(__pyx_t_16, 6+__pyx_t_4, __pyx_t_10);
    __Pyx_INCREF(__pyx_v_cvp_max_final);
    __Pyx_GIVEREF(__pyx_v_cvp_max_final);
    PyTuple_SET_ITEM(__pyx_t_16, 7+__pyx_t_4, __pyx_v_cvp_max_final);
    __Pyx_INCREF(__pyx_v_swp_max_final);
    __Pyx_GIVEREF(__pyx_v_swp_max_final);
    PyTuple_SET_ITEM(__pyx_t_16, 8+__pyx_t_4, __pyx_v_swp_max_final);
    __Pyx_INCREF(__pyx_v_cvp_max);
    __Pyx_GIVEREF(__pyx_v_cvp_max);
    PyTuple_SET_ITEM(__pyx_t_16, 9+__pyx_t_4, __pyx_v_cvp_max);
    __Pyx_INCREF(__pyx_v_swp_max);
    __Pyx_GIVEREF(__pyx_v_swp_max);
    PyTuple_SET_ITEM(__pyx_t_16, 10+__pyx_t_4, __pyx_v_swp_max);
    __Pyx_INCREF(__pyx_v_cvp_release2);
    __Pyx_GIVEREF(__pyx_v_cvp_release2);
    PyTuple_SET_ITEM(__pyx_t_16, 11+__pyx_t_4, __pyx_v_cvp_release2);
    __Pyx_INCREF(__pyx_v_swp_release2);
    __Pyx_GIVEREF(__pyx_v_swp_release2);
    PyTuple_SET_ITEM(__pyx_t_16, 12+__pyx_t_4, __pyx_v_swp_release2);
    __Pyx_INCREF(__pyx_v_cvp_available_storage);
    __Pyx_GIVEREF(__pyx_v_cvp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_16, 13+__pyx_t_4, __pyx_v_cvp_available_storage);
    __Pyx_INCREF(__pyx_v_swp_available_storage);
    __Pyx_GIVEREF(__pyx_v_swp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_16, 14+__pyx_t_4, __pyx_v_swp_available_storage);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_16, 15+__pyx_t_4, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_16, 16+__pyx_t_4, __pyx_t_14);
    __Pyx_INCREF(__pyx_v_swp_over_dead_pool);
    __Pyx_GIVEREF(__pyx_v_swp_over_dead_pool);
    PyTuple_SET_ITEM(__pyx_t_16, 17+__pyx_t_4, __pyx_v_swp_over_dead_pool);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_16, 18+__pyx_t_4, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_16, 19+__pyx_t_4, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_16, 20+__pyx_t_4, __pyx_t_1);
    __Pyx_INCREF(__pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_17);
    PyTuple_SET_ITEM(__pyx_t_16, 21+__pyx_t_4, __pyx_t_17);
    __Pyx_INCREF(__pyx_t_18);
    __Pyx_GIVEREF(__pyx_t_18);
    PyTuple_SET_ITEM(__pyx_t_16, 22+__pyx_t_4, __pyx_t_18);
    __pyx_t_10 = 0;
    __pyx_t_2 = 0;
    __pyx_t_14 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_16, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2448, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_16 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_16 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_16);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_16 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2448, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L30_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_16 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_16)) goto __pyx_L30_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_16);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_18), 2) < 0) __PYX_ERR(0, 2448, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    goto __pyx_L31_unpacking_done;
    __pyx_L30_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2448, __pyx_L1_error)
    __pyx_L31_unpacking_done:;
  }
  __pyx_v_swp_reduced = __pyx_t_11;
  __pyx_t_11 = 0;
  __pyx_v_cvp_reduced = __pyx_t_16;
  __pyx_t_16 = 0;
+2449:     cvp_forgone = max(cvp_forgone, cvp_reduced)
  __Pyx_INCREF(__pyx_v_cvp_reduced);
  __pyx_t_7 = __pyx_v_cvp_reduced;
  __Pyx_INCREF(__pyx_v_cvp_forgone);
  __pyx_t_16 = __pyx_v_cvp_forgone;
  __pyx_t_18 = PyObject_RichCompare(__pyx_t_7, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2449, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_11 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_16);
    __pyx_t_11 = __pyx_t_16;
  }
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_11;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF_SET(__pyx_v_cvp_forgone, __pyx_t_7);
  __pyx_t_7 = 0;
+2450:     swp_forgone = max(cvp_forgone, cvp_reduced)
  __Pyx_INCREF(__pyx_v_cvp_reduced);
  __pyx_t_7 = __pyx_v_cvp_reduced;
  __Pyx_INCREF(__pyx_v_cvp_forgone);
  __pyx_t_11 = __pyx_v_cvp_forgone;
  __pyx_t_18 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2450, __pyx_L1_error)
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2450, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_6) {
    __Pyx_INCREF(__pyx_t_7);
    __pyx_t_16 = __pyx_t_7;
  } else {
    __Pyx_INCREF(__pyx_t_11);
    __pyx_t_16 = __pyx_t_11;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_16;
  __Pyx_INCREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __Pyx_DECREF_SET(__pyx_v_swp_forgone, __pyx_t_7);
  __pyx_t_7 = 0;
 2451: 
 2452:     #distribute releases for export between Sacramento River Reservoirs
+2453:     self.shasta.sodd, self.folsom.sodd = self.delta.distribute_export_releases(t, cvp_max, self.delta.sodd_cvp[t], self.shasta.flood_storage[t], self.folsom.flood_storage[t], self.shasta.available_storage[t], self.folsom.available_storage[t])
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_distribute_export_releases); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_sodd_cvp); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_t); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_flood_storage); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_flood_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_t, __pyx_v_cvp_max, __pyx_t_16, __pyx_t_18, __pyx_t_17, __pyx_t_1, __pyx_t_5};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_t, __pyx_v_cvp_max, __pyx_t_16, __pyx_t_18, __pyx_t_17, __pyx_t_1, __pyx_t_5};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_cvp_max);
    __Pyx_GIVEREF(__pyx_v_cvp_max);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_4, __pyx_v_cvp_max);
    __Pyx_GIVEREF(__pyx_t_16);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_4, __pyx_t_16);
    __Pyx_GIVEREF(__pyx_t_18);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_4, __pyx_t_18);
    __Pyx_GIVEREF(__pyx_t_17);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_4, __pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_4, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_4, __pyx_t_5);
    __pyx_t_16 = 0;
    __pyx_t_18 = 0;
    __pyx_t_17 = 0;
    __pyx_t_1 = 0;
    __pyx_t_5 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2453, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_5 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_11)) goto __pyx_L32_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_14 = __pyx_t_12(__pyx_t_5); if (unlikely(!__pyx_t_14)) goto __pyx_L32_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    goto __pyx_L33_unpacking_done;
    __pyx_L32_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2453, __pyx_L1_error)
    __pyx_L33_unpacking_done:;
  }
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_sodd, __pyx_t_14) < 0) __PYX_ERR(0, 2453, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2454:     self.oroville.sodd, self.yuba.sodd = self.delta.distribute_export_releases(t, swp_max, self.delta.sodd_swp[t], self.oroville.flood_storage[t], self.yuba.flood_storage[t], self.oroville.available_storage[t], self.yuba.available_storage[t])
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_distribute_export_releases); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_sodd_swp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_14);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_flood_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flood_storage); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_16);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
  __pyx_t_16 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_16)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_16);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[8] = {__pyx_t_16, __pyx_v_t, __pyx_v_swp_max, __pyx_t_14, __pyx_t_5, __pyx_t_1, __pyx_t_17, __pyx_t_18};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[8] = {__pyx_t_16, __pyx_v_t, __pyx_v_swp_max, __pyx_t_14, __pyx_t_5, __pyx_t_1, __pyx_t_17, __pyx_t_18};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 7+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(7+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_16) {
      __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_16); __pyx_t_16 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_swp_max);
    __Pyx_GIVEREF(__pyx_v_swp_max);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_swp_max);
    __Pyx_GIVEREF(__pyx_t_14);
    PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_t_14);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_4, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_17);
    PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_4, __pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_18);
    PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_4, __pyx_t_18);
    __pyx_t_14 = 0;
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_t_17 = 0;
    __pyx_t_18 = 0;
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
    PyObject* sequence = __pyx_t_7;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2454, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_11 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_11 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_t_3);
    #else
    __pyx_t_11 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext;
    index = 0; __pyx_t_11 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_11)) goto __pyx_L34_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_11);
    index = 1; __pyx_t_3 = __pyx_t_12(__pyx_t_18); if (unlikely(!__pyx_t_3)) goto __pyx_L34_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_12(__pyx_t_18), 2) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
    __pyx_t_12 = NULL;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    goto __pyx_L35_unpacking_done;
    __pyx_L34_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_12 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2454, __pyx_L1_error)
    __pyx_L35_unpacking_done:;
  }
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_sodd, __pyx_t_3) < 0) __PYX_ERR(0, 2454, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2455:     if self.shasta.sodd > self.shasta.S[t] - self.shasta.dead_pool:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_S); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_dead_pool); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = PyNumber_Subtract(__pyx_t_7, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = PyObject_RichCompare(__pyx_t_3, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2455, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_6) {
/* … */
  }
+2456:       self.shasta.sodd = 0.0
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_sodd, __pyx_float_0_0) < 0) __PYX_ERR(0, 2456, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2457:     if self.oroville.sodd > self.oroville.S[t] - self.oroville.dead_pool:
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_dead_pool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Subtract(__pyx_t_18, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2457, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_6) {
/* … */
  }
+2458:       self.oroville.sodd = 0.0
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_float_0_0) < 0) __PYX_ERR(0, 2458, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 2459: 
 2460:     ##Releases for export from reservoirs with flood control encroachment	  
+2461:     if self.shasta.sodd < self.shasta.min_daily_uncontrolled and self.folsom.sodd > self.folsom.min_daily_uncontrolled:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_20) {
  } else {
    __pyx_t_6 = __pyx_t_20;
    goto __pyx_L39_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2461, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __pyx_t_20;
  __pyx_L39_bool_binop_done:;
  if (__pyx_t_6) {
/* … */
    goto __pyx_L38;
  }
+2462:       release_switch = min(self.folsom.sodd - self.folsom.min_daily_uncontrolled, self.shasta.min_daily_uncontrolled - self.shasta.sodd)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyNumber_Subtract(__pyx_t_3, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2462, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_18 = __pyx_t_7;
    } else {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_18 = __pyx_t_11;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_18;
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_v_release_switch = __pyx_t_7;
    __pyx_t_7 = 0;
+2463:       self.shasta.sodd += release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2463, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2463, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_v_release_switch); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2463, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2463, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2464:       self.folsom.sodd -= release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = PyNumber_InPlaceSubtract(__pyx_t_11, __pyx_v_release_switch); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2464, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_18) < 0) __PYX_ERR(0, 2464, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2465:     elif self.shasta.sodd > self.shasta.min_daily_uncontrolled and self.folsom.sodd < self.folsom.min_daily_uncontrolled:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_18, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_20) {
  } else {
    __pyx_t_6 = __pyx_t_20;
    goto __pyx_L41_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2465, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __pyx_t_20;
  __pyx_L41_bool_binop_done:;
  if (__pyx_t_6) {
/* … */
  }
  __pyx_L38:;
+2466:       release_switch = min(self.shasta.sodd - self.shasta.min_daily_uncontrolled, self.folsom.min_daily_uncontrolled - self.folsom.sodd)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_t_18, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyNumber_Subtract(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_18 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2466, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_3 = __pyx_t_7;
    } else {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_3 = __pyx_t_11;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_3;
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_release_switch = __pyx_t_7;
    __pyx_t_7 = 0;
+2467:       self.shasta.sodd -= release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = PyNumber_InPlaceSubtract(__pyx_t_3, __pyx_v_release_switch); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2467, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2467, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2468:       self.folsom.sodd += release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_v_release_switch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2468, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_3) < 0) __PYX_ERR(0, 2468, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 2469: 
+2470:     if self.oroville.sodd < self.oroville.min_daily_uncontrolled and self.yuba.sodd > self.yuba.min_daily_uncontrolled:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_20) {
  } else {
    __pyx_t_6 = __pyx_t_20;
    goto __pyx_L44_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2470, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __pyx_t_20;
  __pyx_L44_bool_binop_done:;
  if (__pyx_t_6) {
/* … */
    goto __pyx_L43;
  }
+2471:       release_switch = min(self.yuba.sodd - self.yuba.min_daily_uncontrolled, self.oroville.min_daily_uncontrolled - self.oroville.sodd)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_t_3, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyNumber_Subtract(__pyx_t_3, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2471, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_18 = __pyx_t_7;
    } else {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_18 = __pyx_t_11;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_18;
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XDECREF_SET(__pyx_v_release_switch, __pyx_t_7);
    __pyx_t_7 = 0;
+2472:       self.oroville.sodd += release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2472, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2472, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_v_release_switch); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2472, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2472, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2473:       self.yuba.sodd -= release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = PyNumber_InPlaceSubtract(__pyx_t_11, __pyx_v_release_switch); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2473, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_18) < 0) __PYX_ERR(0, 2473, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2474:     elif self.oroville.sodd > self.oroville.min_daily_uncontrolled and self.yuba.sodd < self.yuba.min_daily_uncontrolled:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_18, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_20) {
  } else {
    __pyx_t_6 = __pyx_t_20;
    goto __pyx_L46_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_20 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_20 < 0)) __PYX_ERR(0, 2474, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_6 = __pyx_t_20;
  __pyx_L46_bool_binop_done:;
  if (__pyx_t_6) {
/* … */
  }
  __pyx_L43:;
+2475:       release_switch = min(self.oroville.sodd - self.oroville.min_daily_uncontrolled, self.yuba.min_daily_uncontrolled - self.yuba.sodd)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_t_18, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_sodd); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyNumber_Subtract(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_18 = PyObject_RichCompare(__pyx_t_7, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 2475, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (__pyx_t_6) {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_3 = __pyx_t_7;
    } else {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_3 = __pyx_t_11;
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_3;
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_XDECREF_SET(__pyx_v_release_switch, __pyx_t_7);
    __pyx_t_7 = 0;
+2476:       self.yuba.sodd += release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_v_release_switch); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2476, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_11) < 0) __PYX_ERR(0, 2476, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2477:       self.oroville.sodd -= release_switch
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_3 = PyNumber_InPlaceSubtract(__pyx_t_11, __pyx_v_release_switch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2477, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sodd, __pyx_t_3) < 0) __PYX_ERR(0, 2477, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 2478: 
 2479: 
 2480: 	##SAN JOAQUIN RESERVOIR OPERATIONS
 2481: 	##lower SJ basins - no 'release for exports' but used to meet delta targets @ vernalis
 2482:     ##Water Balance
+2483:     for x in [self.newmelones, self.donpedro, self.exchequer]:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_18 = PyTuple_New(3); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2483, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_18, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_18, 2, __pyx_t_11);
  __pyx_t_7 = 0;
  __pyx_t_3 = 0;
  __pyx_t_11 = 0;
  __pyx_t_11 = __pyx_t_18; __Pyx_INCREF(__pyx_t_11); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  for (;;) {
    if (__pyx_t_8 >= 3) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_8); __Pyx_INCREF(__pyx_t_18); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2483, __pyx_L1_error)
    #else
    __pyx_t_18 = PySequence_ITEM(__pyx_t_11, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
    __pyx_t_18 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2484:       x.step(t)
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_step); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2484, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_18 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_7, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_v_t);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2484, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2485: 	  #forced spills also go to delta
+2486:       self.delta.total_inflow += x.force_spill
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_total_inflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_force_spill); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_total_inflow, __pyx_t_17) < 0) __PYX_ERR(0, 2486, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2487: 
 2488: 
 2489:     #SACRAMENTO RESERVOIR OPERATIONS
 2490: 	##Water balance at each Northern Reservoir
+2491:     self.shasta.rights_call(self.delta.ccc[t]*-1.0,1)
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_rights_call); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_ccc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Multiply(__pyx_t_18, __pyx_float_neg_1_0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
    __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_17);
    if (likely(__pyx_t_18)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
      __Pyx_INCREF(__pyx_t_18);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_17, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_17)) {
    PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_t_7, __pyx_int_1};
    __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2491, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
    PyObject *__pyx_temp[3] = {__pyx_t_18, __pyx_t_7, __pyx_int_1};
    __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2491, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_18) {
      __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_18); __pyx_t_18 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_t_7);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_int_1);
    __pyx_t_7 = 0;
    __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_3, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2492:     self.oroville.rights_call(self.delta.barkerslough[t]*-1.0,1)
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_rights_call); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_barkerslough); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Multiply(__pyx_t_17, __pyx_float_neg_1_0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2492, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_17)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_17);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_7, __pyx_int_1};
    __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2492, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
    PyObject *__pyx_temp[3] = {__pyx_t_17, __pyx_t_7, __pyx_int_1};
    __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_4, 2+__pyx_t_4); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2492, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  } else
  #endif
  {
    __pyx_t_18 = PyTuple_New(2+__pyx_t_4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__pyx_t_17) {
      __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_17); __pyx_t_17 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_4, __pyx_t_7);
    __Pyx_INCREF(__pyx_int_1);
    __Pyx_GIVEREF(__pyx_int_1);
    PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_4, __pyx_int_1);
    __pyx_t_7 = 0;
    __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_18, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2492, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+2493:     for x in [self.shasta, self.oroville, self.yuba, self.folsom]:
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_17 = PyTuple_New(4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_17, 1, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_18);
  PyTuple_SET_ITEM(__pyx_t_17, 2, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_17, 3, __pyx_t_7);
  __pyx_t_11 = 0;
  __pyx_t_3 = 0;
  __pyx_t_18 = 0;
  __pyx_t_7 = 0;
  __pyx_t_7 = __pyx_t_17; __Pyx_INCREF(__pyx_t_7); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  for (;;) {
    if (__pyx_t_8 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_8); __Pyx_INCREF(__pyx_t_17); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 2493, __pyx_L1_error)
    #else
    __pyx_t_17 = PySequence_ITEM(__pyx_t_7, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_17);
    __pyx_t_17 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2494:       x.step(t)
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_step); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2494, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_18, function);
      }
    }
    __pyx_t_17 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_3, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_v_t);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2494, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 2495: 	  #forced spills also go to delta
+2496:       self.delta.total_inflow += x.force_spill
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_total_inflow); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_force_spill); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_17, __pyx_n_s_total_inflow, __pyx_t_11) < 0) __PYX_ERR(0, 2496, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 2497: 
 2498: 
 2499:     ###DELTA OPERATIONS
 2500: 	##Given delta inflows (from gains and reservoir releases), find pumping
 2501:     #cvp_stored_flow = self.shasta.R_to_delta[t] + self.folsom.R_to_delta[t]
 2502:     #swp_stored_flow = self.oroville.R_to_delta[t] + self.yuba.R_to_delta[t]
+2503:     cvp_stored_flow = self.shasta.sodd + self.folsom.sodd
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Add(__pyx_t_17, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2503, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_v_cvp_stored_flow = __pyx_t_7;
  __pyx_t_7 = 0;
+2504:     swp_stored_flow = self.oroville.sodd + self.yuba.sodd
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sodd); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Add(__pyx_t_11, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2504, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_v_swp_stored_flow = __pyx_t_7;
  __pyx_t_7 = 0;
 2505: 
 2506:     ##route all water through delta rules to determine pumping
+2507:     self.delta.step(t, d, da, m, y, wateryear, dowy, cvp_stored_flow, swp_stored_flow, swp_pump, cvp_pump, swp_available_storage, cvp_available_storage)
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_step); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = NULL;
  __pyx_t_4 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_11))) {
    __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_11);
    if (likely(__pyx_t_17)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_11);
      __Pyx_INCREF(__pyx_t_17);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_11, function);
      __pyx_t_4 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[14] = {__pyx_t_17, __pyx_v_t, __pyx_v_d, __pyx_v_da, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear, __pyx_v_dowy, __pyx_v_cvp_stored_flow, __pyx_v_swp_stored_flow, __pyx_v_swp_pump, __pyx_v_cvp_pump, __pyx_v_swp_available_storage, __pyx_v_cvp_available_storage};
    __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 13+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2507, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_11)) {
    PyObject *__pyx_temp[14] = {__pyx_t_17, __pyx_v_t, __pyx_v_d, __pyx_v_da, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear, __pyx_v_dowy, __pyx_v_cvp_stored_flow, __pyx_v_swp_stored_flow, __pyx_v_swp_pump, __pyx_v_cvp_pump, __pyx_v_swp_available_storage, __pyx_v_cvp_available_storage};
    __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_11, __pyx_temp+1-__pyx_t_4, 13+__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2507, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_GOTREF(__pyx_t_7);
  } else
  #endif
  {
    __pyx_t_3 = PyTuple_New(13+__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__pyx_t_17) {
      __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_17); __pyx_t_17 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_4, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_d);
    __Pyx_GIVEREF(__pyx_v_d);
    PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_4, __pyx_v_d);
    __Pyx_INCREF(__pyx_v_da);
    __Pyx_GIVEREF(__pyx_v_da);
    PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_4, __pyx_v_da);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_4, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_y);
    __Pyx_GIVEREF(__pyx_v_y);
    PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_4, __pyx_v_y);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_4, __pyx_v_wateryear);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_4, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_cvp_stored_flow);
    __Pyx_GIVEREF(__pyx_v_cvp_stored_flow);
    PyTuple_SET_ITEM(__pyx_t_3, 7+__pyx_t_4, __pyx_v_cvp_stored_flow);
    __Pyx_INCREF(__pyx_v_swp_stored_flow);
    __Pyx_GIVEREF(__pyx_v_swp_stored_flow);
    PyTuple_SET_ITEM(__pyx_t_3, 8+__pyx_t_4, __pyx_v_swp_stored_flow);
    __Pyx_INCREF(__pyx_v_swp_pump);
    __Pyx_GIVEREF(__pyx_v_swp_pump);
    PyTuple_SET_ITEM(__pyx_t_3, 9+__pyx_t_4, __pyx_v_swp_pump);
    __Pyx_INCREF(__pyx_v_cvp_pump);
    __Pyx_GIVEREF(__pyx_v_cvp_pump);
    PyTuple_SET_ITEM(__pyx_t_3, 10+__pyx_t_4, __pyx_v_cvp_pump);
    __Pyx_INCREF(__pyx_v_swp_available_storage);
    __Pyx_GIVEREF(__pyx_v_swp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_3, 11+__pyx_t_4, __pyx_v_swp_available_storage);
    __Pyx_INCREF(__pyx_v_cvp_available_storage);
    __Pyx_GIVEREF(__pyx_v_cvp_available_storage);
    PyTuple_SET_ITEM(__pyx_t_3, 12+__pyx_t_4, __pyx_v_cvp_available_storage);
    __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_11, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 2508: 
 2509: 
+2510:     return self.delta.HRO_pump[t], self.delta.TRP_pump[t], self.delta.swp_allocation[t], self.delta.cvp_allocation[t], proj_surplus, max_pumping, swp_forgone, cvp_forgone, swp_flood_storage, cvp_flood_storage, swp_available_storage, cvp_available_storage, flood_release, flood_volume
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_HRO_pump); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_TRP_pump); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
  __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_11);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_cvp_allocation); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_t_18 = PyFloat_FromDouble(__pyx_v_swp_flood_storage); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_1 = PyFloat_FromDouble(__pyx_v_cvp_flood_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = PyTuple_New(14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2510, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_11);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_11);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_17);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_17);
  __Pyx_INCREF(__pyx_v_proj_surplus);
  __Pyx_GIVEREF(__pyx_v_proj_surplus);
  PyTuple_SET_ITEM(__pyx_t_5, 4, __pyx_v_proj_surplus);
  __Pyx_INCREF(__pyx_v_max_pumping);
  __Pyx_GIVEREF(__pyx_v_max_pumping);
  PyTuple_SET_ITEM(__pyx_t_5, 5, __pyx_v_max_pumping);
  __Pyx_INCREF(__pyx_v_swp_forgone);
  __Pyx_GIVEREF(__pyx_v_swp_forgone);
  PyTuple_SET_ITEM(__pyx_t_5, 6, __pyx_v_swp_forgone);
  __Pyx_INCREF(__pyx_v_cvp_forgone);
  __Pyx_GIVEREF(__pyx_v_cvp_forgone);
  PyTuple_SET_ITEM(__pyx_t_5, 7, __pyx_v_cvp_forgone);
  __Pyx_GIVEREF(__pyx_t_18);
  PyTuple_SET_ITEM(__pyx_t_5, 8, __pyx_t_18);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 9, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_swp_available_storage);
  __Pyx_GIVEREF(__pyx_v_swp_available_storage);
  PyTuple_SET_ITEM(__pyx_t_5, 10, __pyx_v_swp_available_storage);
  __Pyx_INCREF(__pyx_v_cvp_available_storage);
  __Pyx_GIVEREF(__pyx_v_cvp_available_storage);
  PyTuple_SET_ITEM(__pyx_t_5, 11, __pyx_v_cvp_available_storage);
  __Pyx_INCREF(__pyx_v_flood_release);
  __Pyx_GIVEREF(__pyx_v_flood_release);
  PyTuple_SET_ITEM(__pyx_t_5, 12, __pyx_v_flood_release);
  __Pyx_INCREF(__pyx_v_flood_volume);
  __Pyx_GIVEREF(__pyx_v_flood_volume);
  PyTuple_SET_ITEM(__pyx_t_5, 13, __pyx_v_flood_volume);
  __pyx_t_7 = 0;
  __pyx_t_11 = 0;
  __pyx_t_3 = 0;
  __pyx_t_17 = 0;
  __pyx_t_18 = 0;
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
 2511: 
+2512:   def simulate_south(self, t, hro_pump, trp_pump, swp_alloc, cvp_alloc, proj_surplus, max_pumping, swp_forgone, cvp_forgone, swp_AF, cvp_AF, swp_AS, cvp_AS, wyt, wytSC, max_tax_free, flood_release, flood_volume):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_51simulate_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_51simulate_south = {"simulate_south", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_51simulate_south, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_51simulate_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_hro_pump = 0;
  PyObject *__pyx_v_trp_pump = 0;
  PyObject *__pyx_v_swp_alloc = 0;
  PyObject *__pyx_v_cvp_alloc = 0;
  PyObject *__pyx_v_proj_surplus = 0;
  PyObject *__pyx_v_max_pumping = 0;
  PyObject *__pyx_v_swp_forgone = 0;
  PyObject *__pyx_v_cvp_forgone = 0;
  PyObject *__pyx_v_swp_AF = 0;
  PyObject *__pyx_v_cvp_AF = 0;
  PyObject *__pyx_v_swp_AS = 0;
  PyObject *__pyx_v_cvp_AS = 0;
  PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_v_wytSC = 0;
  CYTHON_UNUSED PyObject *__pyx_v_max_tax_free = 0;
  PyObject *__pyx_v_flood_release = 0;
  PyObject *__pyx_v_flood_volume = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("simulate_south (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_hro_pump,&__pyx_n_s_trp_pump,&__pyx_n_s_swp_alloc,&__pyx_n_s_cvp_alloc,&__pyx_n_s_proj_surplus,&__pyx_n_s_max_pumping,&__pyx_n_s_swp_forgone,&__pyx_n_s_cvp_forgone,&__pyx_n_s_swp_AF,&__pyx_n_s_cvp_AF,&__pyx_n_s_swp_AS,&__pyx_n_s_cvp_AS,&__pyx_n_s_wyt,&__pyx_n_s_wytSC,&__pyx_n_s_max_tax_free,&__pyx_n_s_flood_release,&__pyx_n_s_flood_volume,0};
    PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
        CYTHON_FALLTHROUGH;
        case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
        CYTHON_FALLTHROUGH;
        case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
        CYTHON_FALLTHROUGH;
        case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
        CYTHON_FALLTHROUGH;
        case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
        CYTHON_FALLTHROUGH;
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 1); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_hro_pump)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 2); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_trp_pump)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 3); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_alloc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 4); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_alloc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 5); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proj_surplus)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 6); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_pumping)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 7); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_forgone)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 8); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_forgone)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 9); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AF)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 10); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AF)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 11); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AS)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 12); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 13:
        if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AS)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 13); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 14:
        if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 14); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 15:
        if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wytSC)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 15); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 16:
        if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 16); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 17:
        if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_release)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 17); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 18:
        if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_volume)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, 18); __PYX_ERR(0, 2512, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "simulate_south") < 0)) __PYX_ERR(0, 2512, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 19) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
      values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
      values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
      values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
      values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
      values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
      values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_hro_pump = values[2];
    __pyx_v_trp_pump = values[3];
    __pyx_v_swp_alloc = values[4];
    __pyx_v_cvp_alloc = values[5];
    __pyx_v_proj_surplus = values[6];
    __pyx_v_max_pumping = values[7];
    __pyx_v_swp_forgone = values[8];
    __pyx_v_cvp_forgone = values[9];
    __pyx_v_swp_AF = values[10];
    __pyx_v_cvp_AF = values[11];
    __pyx_v_swp_AS = values[12];
    __pyx_v_cvp_AS = values[13];
    __pyx_v_wyt = values[14];
    __pyx_v_wytSC = values[15];
    __pyx_v_max_tax_free = values[16];
    __pyx_v_flood_release = values[17];
    __pyx_v_flood_volume = values[18];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("simulate_south", 1, 19, 19, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 2512, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.simulate_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_50simulate_south(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_hro_pump, __pyx_v_trp_pump, __pyx_v_swp_alloc, __pyx_v_cvp_alloc, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_forgone, __pyx_v_cvp_forgone, __pyx_v_swp_AF, __pyx_v_cvp_AF, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_wyt, __pyx_v_wytSC, __pyx_v_max_tax_free, __pyx_v_flood_release, __pyx_v_flood_volume);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_50simulate_south(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_hro_pump, PyObject *__pyx_v_trp_pump, PyObject *__pyx_v_swp_alloc, PyObject *__pyx_v_cvp_alloc, PyObject *__pyx_v_proj_surplus, PyObject *__pyx_v_max_pumping, PyObject *__pyx_v_swp_forgone, PyObject *__pyx_v_cvp_forgone, PyObject *__pyx_v_swp_AF, PyObject *__pyx_v_cvp_AF, PyObject *__pyx_v_swp_AS, PyObject *__pyx_v_cvp_AS, PyObject *__pyx_v_wyt, PyObject *__pyx_v_wytSC, CYTHON_UNUSED PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_flood_release, PyObject *__pyx_v_flood_volume) {
  PyObject *__pyx_v_d = NULL;
  PyObject *__pyx_v_da = NULL;
  PyObject *__pyx_v_dowy = NULL;
  PyObject *__pyx_v_m = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_wateryear = NULL;
  PyObject *__pyx_v_year_index = NULL;
  PyObject *__pyx_v_m1 = NULL;
  PyObject *__pyx_v_watershed_reservoir_list = NULL;
  PyObject *__pyx_v_x = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_extra_s = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_extra_f = NULL;
  CYTHON_UNUSED double __pyx_v_total_water_base;
  PyObject *__pyx_v_land_constraint = NULL;
  PyObject *__pyx_v_crop = NULL;
  PyObject *__pyx_v_water_constraint_by_source = NULL;
  PyObject *__pyx_v_water_available = NULL;
  PyObject *__pyx_v_source = NULL;
  PyObject *__pyx_v_contracts_from_source = NULL;
  PyObject *__pyx_v_source_contracts = NULL;
  Py_ssize_t __pyx_v_i;
  PyObject *__pyx_v_x0 = NULL;
  PyObject *__pyx_v_allocation_change = NULL;
  PyObject *__pyx_v_expected_pumping = NULL;
  PyObject *__pyx_v_swp_release = NULL;
  PyObject *__pyx_v_swp_release2 = NULL;
  PyObject *__pyx_v_fill_up_cross_swp = NULL;
  PyObject *__pyx_v_cvp_release = NULL;
  PyObject *__pyx_v_cvp_release2 = NULL;
  PyObject *__pyx_v_fill_up_cross_cvp = NULL;
  PyObject *__pyx_v_seller_total = NULL;
  PyObject *__pyx_v_buyer_total = NULL;
  PyObject *__pyx_v_seller_turnback = NULL;
  PyObject *__pyx_v_buyer_turnback = NULL;
  PyObject *__pyx_v_total_contract = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_additional_carryover = NULL;
  PyObject *__pyx_v_reservoir = NULL;
  PyObject *__pyx_v_this_reservoir_all_contract = NULL;
  PyObject *__pyx_v_priority_deliveries = NULL;
  PyObject *__pyx_v_secondary_deliveries = NULL;
  PyObject *__pyx_v_total_res_carryover = NULL;
  PyObject *__pyx_v_priority_contract = NULL;
  PyObject *__pyx_v_secondary_contract = NULL;
  PyObject *__pyx_v_extra_allocation = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_total_allocation = NULL;
  PyObject *__pyx_v_tot_ind_deliveries = NULL;
  PyObject *__pyx_v_tot_ind_carryover = NULL;
  PyObject *__pyx_v_tot_ind_turnback = NULL;
  PyObject *__pyx_v_tot_ind_paper = NULL;
  PyObject *__pyx_v_tot_res_deliveries = NULL;
  PyObject *__pyx_v_priority_storage = NULL;
  PyObject *__pyx_v_tot_res_carryover = NULL;
  PyObject *__pyx_v_total_water = NULL;
  PyObject *__pyx_v_next_year_carryover = NULL;
  PyObject *__pyx_v_this_year_carryover = NULL;
  PyObject *__pyx_v_z = NULL;
  PyObject *__pyx_v_counter = NULL;
  double __pyx_v_target_eoy;
  long __pyx_v_use_tolerance;
  PyObject *__pyx_v_flow_type = NULL;
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_exchanger_list = NULL;
  PyObject *__pyx_v_exchange_max = NULL;
  PyObject *__pyx_v_exchange_request = NULL;
  PyObject *__pyx_v_exc_cvc = NULL;
  PyObject *__pyx_v_delivered_exchange = NULL;
  PyObject *__pyx_v_ind_exchange = NULL;
  PyObject *__pyx_v_reservoir_recovery = NULL;
  PyObject *__pyx_v_exchange_contract = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_delivery_key = NULL;
  PyObject *__pyx_v_canal_size = NULL;
  PyObject *__pyx_v_total_canal_demand = NULL;
  PyObject *__pyx_v_total_current_balance = NULL;
  PyObject *__pyx_v_total_projected_supply = NULL;
  double __pyx_v_conservative_estimate;
  PyObject *__pyx_v_available_exchange_kern = NULL;
  PyObject *__pyx_v_requester_list = NULL;
  PyObject *__pyx_v_total_request = NULL;
  PyObject *__pyx_v_requester = NULL;
  PyObject *__pyx_v_request_fraction = NULL;
  PyObject *__pyx_v_exchanged_value = NULL;
  PyObject *__pyx_v_available_flow = NULL;
  PyObject *__pyx_v_zz = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_excess_water = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_unmet_demand = NULL;
  PyObject *__pyx_v_flood_order_list = NULL;
  long __pyx_v_overflow_deliveries;
  PyObject *__pyx_v_a = NULL;
  PyObject *__pyx_v_numdays_fillup = NULL;
  PyObject *__pyx_v_demand_days = NULL;
  PyObject *__pyx_v_lookahead_days = NULL;
  PyObject *__pyx_v_carryover_days = NULL;
  PyObject *__pyx_v_k = NULL;
  PyObject *__pyx_v_swp_pump = NULL;
  PyObject *__pyx_v_cvp_pump = NULL;
  CYTHON_UNUSED double __pyx_v_tot_paper;
  CYTHON_UNUSED double __pyx_v_tot_turnback;
  CYTHON_UNUSED PyObject *__pyx_v_lastYearCarryover = NULL;
  long __pyx_v_use_contract;
  PyObject *__pyx_v_new_alloc = NULL;
  PyObject *__pyx_v_carryover = NULL;
  PyObject *__pyx_v_current_carryover_storage = NULL;
  PyObject *__pyx_v_fudge_factor = NULL;
  PyObject *__pyx_v_sum_carryover = NULL;
  PyObject *__pyx_v_canal_loc = NULL;
  PyObject *__pyx_v_loc_id = NULL;
  CYTHON_UNUSED PyObject *__pyx_9genexpr15__pyx_v__ = NULL;
  CYTHON_UNUSED PyObject *__pyx_9genexpr16__pyx_v__ = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__49)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("simulate_south", 0);
  __Pyx_TraceCall("simulate_south", __pyx_f[0], 2512, 0, __PYX_ERR(0, 2512, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_XDECREF(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_27);
  __Pyx_XDECREF(__pyx_t_28);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.simulate_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_d);
  __Pyx_XDECREF(__pyx_v_da);
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_m);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_wateryear);
  __Pyx_XDECREF(__pyx_v_year_index);
  __Pyx_XDECREF(__pyx_v_m1);
  __Pyx_XDECREF(__pyx_v_watershed_reservoir_list);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_extra_s);
  __Pyx_XDECREF(__pyx_v_extra_f);
  __Pyx_XDECREF(__pyx_v_land_constraint);
  __Pyx_XDECREF(__pyx_v_crop);
  __Pyx_XDECREF(__pyx_v_water_constraint_by_source);
  __Pyx_XDECREF(__pyx_v_water_available);
  __Pyx_XDECREF(__pyx_v_source);
  __Pyx_XDECREF(__pyx_v_contracts_from_source);
  __Pyx_XDECREF(__pyx_v_source_contracts);
  __Pyx_XDECREF(__pyx_v_x0);
  __Pyx_XDECREF(__pyx_v_allocation_change);
  __Pyx_XDECREF(__pyx_v_expected_pumping);
  __Pyx_XDECREF(__pyx_v_swp_release);
  __Pyx_XDECREF(__pyx_v_swp_release2);
  __Pyx_XDECREF(__pyx_v_fill_up_cross_swp);
  __Pyx_XDECREF(__pyx_v_cvp_release);
  __Pyx_XDECREF(__pyx_v_cvp_release2);
  __Pyx_XDECREF(__pyx_v_fill_up_cross_cvp);
  __Pyx_XDECREF(__pyx_v_seller_total);
  __Pyx_XDECREF(__pyx_v_buyer_total);
  __Pyx_XDECREF(__pyx_v_seller_turnback);
  __Pyx_XDECREF(__pyx_v_buyer_turnback);
  __Pyx_XDECREF(__pyx_v_total_contract);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_additional_carryover);
  __Pyx_XDECREF(__pyx_v_reservoir);
  __Pyx_XDECREF(__pyx_v_this_reservoir_all_contract);
  __Pyx_XDECREF(__pyx_v_priority_deliveries);
  __Pyx_XDECREF(__pyx_v_secondary_deliveries);
  __Pyx_XDECREF(__pyx_v_total_res_carryover);
  __Pyx_XDECREF(__pyx_v_priority_contract);
  __Pyx_XDECREF(__pyx_v_secondary_contract);
  __Pyx_XDECREF(__pyx_v_extra_allocation);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_total_allocation);
  __Pyx_XDECREF(__pyx_v_tot_ind_deliveries);
  __Pyx_XDECREF(__pyx_v_tot_ind_carryover);
  __Pyx_XDECREF(__pyx_v_tot_ind_turnback);
  __Pyx_XDECREF(__pyx_v_tot_ind_paper);
  __Pyx_XDECREF(__pyx_v_tot_res_deliveries);
  __Pyx_XDECREF(__pyx_v_priority_storage);
  __Pyx_XDECREF(__pyx_v_tot_res_carryover);
  __Pyx_XDECREF(__pyx_v_total_water);
  __Pyx_XDECREF(__pyx_v_next_year_carryover);
  __Pyx_XDECREF(__pyx_v_this_year_carryover);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XDECREF(__pyx_v_counter);
  __Pyx_XDECREF(__pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_exchanger_list);
  __Pyx_XDECREF(__pyx_v_exchange_max);
  __Pyx_XDECREF(__pyx_v_exchange_request);
  __Pyx_XDECREF(__pyx_v_exc_cvc);
  __Pyx_XDECREF(__pyx_v_delivered_exchange);
  __Pyx_XDECREF(__pyx_v_ind_exchange);
  __Pyx_XDECREF(__pyx_v_reservoir_recovery);
  __Pyx_XDECREF(__pyx_v_exchange_contract);
  __Pyx_XDECREF(__pyx_v_delivery_key);
  __Pyx_XDECREF(__pyx_v_canal_size);
  __Pyx_XDECREF(__pyx_v_total_canal_demand);
  __Pyx_XDECREF(__pyx_v_total_current_balance);
  __Pyx_XDECREF(__pyx_v_total_projected_supply);
  __Pyx_XDECREF(__pyx_v_available_exchange_kern);
  __Pyx_XDECREF(__pyx_v_requester_list);
  __Pyx_XDECREF(__pyx_v_total_request);
  __Pyx_XDECREF(__pyx_v_requester);
  __Pyx_XDECREF(__pyx_v_request_fraction);
  __Pyx_XDECREF(__pyx_v_exchanged_value);
  __Pyx_XDECREF(__pyx_v_available_flow);
  __Pyx_XDECREF(__pyx_v_zz);
  __Pyx_XDECREF(__pyx_v_excess_water);
  __Pyx_XDECREF(__pyx_v_unmet_demand);
  __Pyx_XDECREF(__pyx_v_flood_order_list);
  __Pyx_XDECREF(__pyx_v_a);
  __Pyx_XDECREF(__pyx_v_numdays_fillup);
  __Pyx_XDECREF(__pyx_v_demand_days);
  __Pyx_XDECREF(__pyx_v_lookahead_days);
  __Pyx_XDECREF(__pyx_v_carryover_days);
  __Pyx_XDECREF(__pyx_v_k);
  __Pyx_XDECREF(__pyx_v_swp_pump);
  __Pyx_XDECREF(__pyx_v_cvp_pump);
  __Pyx_XDECREF(__pyx_v_lastYearCarryover);
  __Pyx_XDECREF(__pyx_v_new_alloc);
  __Pyx_XDECREF(__pyx_v_carryover);
  __Pyx_XDECREF(__pyx_v_current_carryover_storage);
  __Pyx_XDECREF(__pyx_v_fudge_factor);
  __Pyx_XDECREF(__pyx_v_sum_carryover);
  __Pyx_XDECREF(__pyx_v_canal_loc);
  __Pyx_XDECREF(__pyx_v_loc_id);
  __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__);
  __Pyx_XDECREF(__pyx_9genexpr16__pyx_v__);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__114 = PyTuple_Pack(129, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_hro_pump, __pyx_n_s_trp_pump, __pyx_n_s_swp_alloc, __pyx_n_s_cvp_alloc, __pyx_n_s_proj_surplus, __pyx_n_s_max_pumping, __pyx_n_s_swp_forgone, __pyx_n_s_cvp_forgone, __pyx_n_s_swp_AF, __pyx_n_s_cvp_AF, __pyx_n_s_swp_AS, __pyx_n_s_cvp_AS, __pyx_n_s_wyt, __pyx_n_s_wytSC, __pyx_n_s_max_tax_free, __pyx_n_s_flood_release, __pyx_n_s_flood_volume, __pyx_n_s_d, __pyx_n_s_da, __pyx_n_s_dowy, __pyx_n_s_m, __pyx_n_s_y, __pyx_n_s_wateryear, __pyx_n_s_year_index, __pyx_n_s_m1, __pyx_n_s_watershed_reservoir_list, __pyx_n_s_x, __pyx_n_s_extra_s, __pyx_n_s_extra_f, __pyx_n_s_total_water_base, __pyx_n_s_land_constraint, __pyx_n_s_crop, __pyx_n_s_water_constraint_by_source, __pyx_n_s_water_available, __pyx_n_s_source, __pyx_n_s_contracts_from_source, __pyx_n_s_source_contracts, __pyx_n_s_i, __pyx_n_s_x0, __pyx_n_s_allocation_change, __pyx_n_s_expected_pumping, __pyx_n_s_swp_release, __pyx_n_s_swp_release2, __pyx_n_s_fill_up_cross_swp, __pyx_n_s_cvp_release, __pyx_n_s_cvp_release2, __pyx_n_s_fill_up_cross_cvp, __pyx_n_s_seller_total, __pyx_n_s_buyer_total, __pyx_n_s_seller_turnback, __pyx_n_s_buyer_turnback, __pyx_n_s_total_contract, __pyx_n_s_xx, __pyx_n_s_additional_carryover, __pyx_n_s_reservoir, __pyx_n_s_this_reservoir_all_contract, __pyx_n_s_priority_deliveries, __pyx_n_s_secondary_deliveries, __pyx_n_s_total_res_carryover, __pyx_n_s_priority_contract, __pyx_n_s_secondary_contract, __pyx_n_s_extra_allocation, __pyx_n_s_yy, __pyx_n_s_total_allocation, __pyx_n_s_tot_ind_deliveries, __pyx_n_s_tot_ind_carryover, __pyx_n_s_tot_ind_turnback, __pyx_n_s_tot_ind_paper, __pyx_n_s_tot_res_deliveries, __pyx_n_s_priority_storage, __pyx_n_s_tot_res_carryover, __pyx_n_s_total_water, __pyx_n_s_next_year_carryover, __pyx_n_s_this_year_carryover, __pyx_n_s_z, __pyx_n_s_counter, __pyx_n_s_target_eoy, __pyx_n_s_use_tolerance, __pyx_n_s_flow_type, __pyx_n_s_w, __pyx_n_s_exchanger_list, __pyx_n_s_exchange_max, __pyx_n_s_exchange_request, __pyx_n_s_exc_cvc, __pyx_n_s_delivered_exchange, __pyx_n_s_ind_exchange, __pyx_n_s_reservoir_recovery, __pyx_n_s_exchange_contract, __pyx_n_s_delivery_key, __pyx_n_s_canal_size, __pyx_n_s_total_canal_demand, __pyx_n_s_total_current_balance, __pyx_n_s_total_projected_supply, __pyx_n_s_conservative_estimate, __pyx_n_s_available_exchange_kern, __pyx_n_s_requester_list, __pyx_n_s_total_request, __pyx_n_s_requester, __pyx_n_s_request_fraction, __pyx_n_s_exchanged_value, __pyx_n_s_available_flow, __pyx_n_s_zz, __pyx_n_s_excess_water, __pyx_n_s_unmet_demand, __pyx_n_s_flood_order_list, __pyx_n_s_overflow_deliveries, __pyx_n_s_a, __pyx_n_s_numdays_fillup, __pyx_n_s_demand_days, __pyx_n_s_lookahead_days, __pyx_n_s_carryover_days, __pyx_n_s_k, __pyx_n_s_swp_pump, __pyx_n_s_cvp_pump, __pyx_n_s_tot_paper, __pyx_n_s_tot_turnback, __pyx_n_s_lastYearCarryover, __pyx_n_s_use_contract, __pyx_n_s_new_alloc, __pyx_n_s_carryover, __pyx_n_s_current_carryover_storage, __pyx_n_s_fudge_factor, __pyx_n_s_sum_carryover, __pyx_n_s_canal_loc, __pyx_n_s_loc_id, __pyx_n_s__12, __pyx_n_s__12); if (unlikely(!__pyx_tuple__114)) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__114);
  __Pyx_GIVEREF(__pyx_tuple__114);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_51simulate_south, 0, __pyx_n_s_Model_simulate_south, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_simulate_south, __pyx_t_2) < 0) __PYX_ERR(0, 2512, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(19, 0, 129, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__114, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_simulate_south, 2512, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 2512, __pyx_L1_error)
 2513:     ####Maintain the same date/time accounting as the northern part of the model
+2514:     d = self.day_year[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2514, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_d = __pyx_t_2;
  __pyx_t_2 = 0;
+2515:     da = self.day_month[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_day_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2515, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_da = __pyx_t_1;
  __pyx_t_1 = 0;
+2516:     dowy = self.dowy[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_dowy = __pyx_t_2;
  __pyx_t_2 = 0;
+2517:     m = self.month[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2517, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_m = __pyx_t_1;
  __pyx_t_1 = 0;
+2518:     y = self.year[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2518, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_y = __pyx_t_2;
  __pyx_t_2 = 0;
+2519:     wateryear = self.water_year[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_water_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2519, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_wateryear = __pyx_t_1;
  __pyx_t_1 = 0;
+2520:     year_index = y - self.starting_year
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_y, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_year_index = __pyx_t_2;
  __pyx_t_2 = 0;
 2521: 
+2522:     if m == 12:
  __pyx_t_2 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_12, 12, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2522, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2522, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+2523:       m1 = 1
    __Pyx_INCREF(__pyx_int_1);
    __pyx_v_m1 = __pyx_int_1;
 2524:     else:
+2525:       m1 = m + 1
  /*else*/ {
    __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_m1 = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L3:;
 2526: 
 2527:     #####Pumping and project allocations (projections of future pumping) are passed 
 2528: 	#####Into the southern model from the delta calcs in the northern model
+2529:     self.trp_pumping[t] = trp_pump
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_trp_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2529, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_v_trp_pump) < 0)) __PYX_ERR(0, 2529, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2530:     self.hro_pumping[t] = hro_pump
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_hro_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2530, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_v_hro_pump) < 0)) __PYX_ERR(0, 2530, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2531:     self.annual_SWP[wateryear] += hro_pump
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_annual_SWP); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_wateryear);
  __pyx_t_1 = __pyx_v_wateryear;
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_v_hro_pump); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_1, __pyx_t_5) < 0)) __PYX_ERR(0, 2531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2532:     self.annual_CVP[wateryear] += trp_pump
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_annual_CVP); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_v_wateryear);
  __pyx_t_1 = __pyx_v_wateryear;
  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_v_trp_pump); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2532, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_1, __pyx_t_4) < 0)) __PYX_ERR(0, 2532, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2533:     self.cvp_allocation[t] = cvp_alloc
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvp_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_v_cvp_alloc) < 0)) __PYX_ERR(0, 2533, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2534:     self.swp_allocation[t] = swp_alloc
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2534, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_v_swp_alloc) < 0)) __PYX_ERR(0, 2534, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2535: 
 2536: 	####Various infrastructure & regulatory changes that 
 2537: 	####occurred during the duration of the 1996-2016 calibration period
+2538:     if self.model_mode == 'validation':
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2538, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_validation, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2538, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L4;
  }
+2539:       self.update_regulations_south(t,dowy,m,year_index + self.starting_year, wateryear)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_regulations_south); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = PyNumber_Add(__pyx_v_year_index, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2539, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_t_5, __pyx_v_wateryear};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[6] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_t_5, __pyx_v_wateryear};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_m);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_5);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_5 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2539, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 2540:     else:
+2541:       self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2541, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[3] = {__pyx_t_1, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2541, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_dowy);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2541, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_sjrr_release, __pyx_t_2) < 0) __PYX_ERR(0, 2541, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __pyx_L4:;
 2542: 
 2543: 
 2544:     ####Calculate water balance/flow requirements at each 
 2545: 	####local reservoir, in the same fashion as they are calculated for the 
 2546: 	####Northern Reservoir
+2547:     watershed_reservoir_list = [self.millerton, self.success, self.kaweah, self.isabella, self.pineflat]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = PyList_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_8, 3, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_8, 4, __pyx_t_4);
  __pyx_t_7 = 0;
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_v_watershed_reservoir_list = ((PyObject*)__pyx_t_8);
  __pyx_t_8 = 0;
+2548:     for x in watershed_reservoir_list:
  __pyx_t_8 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2548, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2549:       x.rights_call(x.downstream[t])
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights_call); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_downstream); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2550:       x.release_environmental(t, d, m, dowy, self.first_d_of_month[year_index], wyt)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_release_environmental); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_first_d_of_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2550, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_5, __pyx_v_wyt};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2550, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[7] = {__pyx_t_2, __pyx_v_t, __pyx_v_d, __pyx_v_m, __pyx_v_dowy, __pyx_t_5, __pyx_v_wyt};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2550, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2550, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_d);
      __Pyx_GIVEREF(__pyx_v_d);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_d);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_t_5);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_5 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2550, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 2551: 
 2552: 	###Flow projections for the local reservoirs
 2553: 	###Note: no flow projection for the San Luis Reservoir,
 2554: 	###because it has no watershed affects.  Projections of pumping
 2555: 	###are calculated in the northern function, and passed here as 
 2556: 	###'projected allocations'
+2557:     for x in watershed_reservoir_list:
  __pyx_t_8 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2557, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2557, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2558:       x.find_available_storage(t, m, da, dowy)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_available_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2558, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2558, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2558, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_4);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_6, __pyx_v_dowy);
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2558, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 2559: 
 2560:     ##Water Balance step at each reservoir
+2561:     for x in watershed_reservoir_list:
  __pyx_t_8 = __pyx_v_watershed_reservoir_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2561, __pyx_L1_error)
    #else
    __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2562:       x.step(t)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_step); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2562, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_4 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_v_t) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_t);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2562, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 2563: 
 2564:     ##Water balance/capacity sharing at San Luis Reservoir - capacity
 2565: 	##Sharing means that both the state/federal portions can exceed 50% of the
 2566: 	##total storage in San Luis, but any extra storage must be evacuated if pumping
 2567: 	##from the other project begins to encroach on this space (i.e. temporary storage in the
 2568: 	##other projects capacity)
+2569:     if t < (self.T - 1):
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyInt_SubtractObjC(__pyx_t_8, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2569, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_v_t, __pyx_t_4, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2569, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2569, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L11;
  }
+2570:       extra_s, extra_f = self.step_san_luis(t, m, da)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_step_san_luis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2570, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_da};
      __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_8);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_da};
      __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_8);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_da);
      __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
      PyObject* sequence = __pyx_t_8;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 2570, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_5);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2570, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L12_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_5 = __pyx_t_10(__pyx_t_1); if (unlikely(!__pyx_t_5)) goto __pyx_L12_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_1), 2) < 0) __PYX_ERR(0, 2570, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      goto __pyx_L13_unpacking_done;
      __pyx_L12_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 2570, __pyx_L1_error)
      __pyx_L13_unpacking_done:;
    }
    __pyx_v_extra_s = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_extra_f = __pyx_t_5;
    __pyx_t_5 = 0;
 2571:     else:
+2572:       extra_s = 0.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_s = __pyx_float_0_0;
+2573:       extra_f = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_f = __pyx_float_0_0;
  }
  __pyx_L11:;
 2574: 
 2575: 	###If pumping would occur from the northern model, but cannot because San Luis
 2576: 	###Reservoir is full (and unable to be emptied), the projects 'take back' any 
 2577: 	###carryover water and pretend that it was pumped, adding the carryover to the projections for 
 2578: 	###this year's allocation.  This has the effect of taking water belonging to an individual contractor
 2579: 	###(i.e. Southern California) and dividing it among all contractors
+2580:     self.appropriate_carryover(swp_forgone, "SLS", wateryear)
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_appropriate_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_swp_forgone, __pyx_n_u_SLS, __pyx_v_wateryear};
    __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2580, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_8);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_v_swp_forgone, __pyx_n_u_SLS, __pyx_v_wateryear};
    __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2580, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_8);
  } else
  #endif
  {
    __pyx_t_1 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2580, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_INCREF(__pyx_v_swp_forgone);
    __Pyx_GIVEREF(__pyx_v_swp_forgone);
    PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_swp_forgone);
    __Pyx_INCREF(__pyx_n_u_SLS);
    __Pyx_GIVEREF(__pyx_n_u_SLS);
    PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_n_u_SLS);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_v_wateryear);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2580, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2581:     self.appropriate_carryover(cvp_forgone, "SLF", wateryear)
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_appropriate_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2581, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_cvp_forgone, __pyx_n_u_SLF, __pyx_v_wateryear};
    __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2581, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_8);
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
    PyObject *__pyx_temp[4] = {__pyx_t_1, __pyx_v_cvp_forgone, __pyx_n_u_SLF, __pyx_v_wateryear};
    __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2581, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_8);
  } else
  #endif
  {
    __pyx_t_4 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__pyx_t_1) {
      __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1); __pyx_t_1 = NULL;
    }
    __Pyx_INCREF(__pyx_v_cvp_forgone);
    __Pyx_GIVEREF(__pyx_v_cvp_forgone);
    PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_cvp_forgone);
    __Pyx_INCREF(__pyx_n_u_SLF);
    __Pyx_GIVEREF(__pyx_n_u_SLF);
    PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_n_u_SLF);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_wateryear);
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2582:     self.sanluisstate.flood_spill[t] += swp_forgone
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_flood_spill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_INCREF(__pyx_v_t);
  __pyx_t_8 = __pyx_v_t;
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_v_swp_forgone); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_8, __pyx_t_1) < 0)) __PYX_ERR(0, 2582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2583:     self.sanluisfederal.flood_spill[t] += cvp_forgone
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_flood_spill); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_INCREF(__pyx_v_t);
  __pyx_t_5 = __pyx_v_t;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_cvp_forgone); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_5, __pyx_t_4) < 0)) __PYX_ERR(0, 2583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 2584: 
 2585: 	##Find ID demands
 2586: 	###Daily demands are calculated from monthly demands based on 
 2587: 	###crop acreage.  Right now the acreage is dependent on water year type,
 2588: 	###so demand for each water year type can be calculated before the timestep loop.
 2589: 	###When crop allocation functions are added, this demand must be calculated at least once
 2590: 	###per year (as acreages update).  Daily demands are just monthly demands divided by the number
 2591: 	###of days in a month
+2592:     if m == 3 and da == 2:
  __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_11) {
  } else {
    __pyx_t_3 = __pyx_t_11;
    goto __pyx_L15_bool_binop_done;
  }
  __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_2, 2, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2592, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2592, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = __pyx_t_11;
  __pyx_L15_bool_binop_done:;
  if (__pyx_t_3) {
/* … */
  }
+2593:       for x in self.district_list:
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2593, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
      __pyx_t_5 = __pyx_t_8; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2593, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2593, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2593, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2593, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2593, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_12(__pyx_t_5);
        if (unlikely(!__pyx_t_8)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2593, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2594:         if x.has_pmp:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_pmp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2594, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_3) {
/* … */
      }
+2595:           total_water_base = 0.0
        __pyx_v_total_water_base = 0.0;
+2596:           land_constraint = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_land_constraint, __pyx_float_0_0);
+2597:           for crop in x.irrdemand.crop_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2597, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_crop_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2597, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2597, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2597, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2597, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2597, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2597, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2597, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_14(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2597, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_crop, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2598:             land_constraint += x.irrdemand.baseline_inputs['LAND'][crop]
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_baseline_inputs); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_LAND); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_crop); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_land_constraint, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2598, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF_SET(__pyx_v_land_constraint, __pyx_t_4);
          __pyx_t_4 = 0;
+2599:           water_constraint_by_source = {}
        __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2599, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF_SET(__pyx_v_water_constraint_by_source, ((PyObject*)__pyx_t_8));
        __pyx_t_8 = 0;
+2600:           water_available = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_water_available, __pyx_float_0_0);
+2601:           for source in x.irrdemand.water_source_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_irrdemand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2601, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_water_source_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2601, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_8 = __pyx_t_4; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2601, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2601, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2601, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2601, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2601, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2601, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_14(__pyx_t_8);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2601, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_source, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2602:             if source != 'GW':
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_source, __pyx_n_u_GW, Py_NE)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2602, __pyx_L1_error)
          if (__pyx_t_3) {
/* … */
          }
+2603:               contracts_from_source = self.source_codes[source]
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_source_codes); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2603, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_XDECREF_SET(__pyx_v_contracts_from_source, __pyx_t_1);
            __pyx_t_1 = 0;
+2604:               water_constraint_by_source[source] = 0.0
            if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_v_source, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2604, __pyx_L1_error)
+2605:               for source_contracts in contracts_from_source:
            if (likely(PyList_CheckExact(__pyx_v_contracts_from_source)) || PyTuple_CheckExact(__pyx_v_contracts_from_source)) {
              __pyx_t_1 = __pyx_v_contracts_from_source; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
              __pyx_t_16 = NULL;
            } else {
              __pyx_t_15 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_contracts_from_source); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2605, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_16 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2605, __pyx_L1_error)
            }
            for (;;) {
              if (likely(!__pyx_t_16)) {
                if (likely(PyList_CheckExact(__pyx_t_1))) {
                  if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_4); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2605, __pyx_L1_error)
                  #else
                  __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2605, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  #endif
                } else {
                  if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_4); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2605, __pyx_L1_error)
                  #else
                  __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2605, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  #endif
                }
              } else {
                __pyx_t_4 = __pyx_t_16(__pyx_t_1);
                if (unlikely(!__pyx_t_4)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 2605, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_4);
              }
              __Pyx_XDECREF_SET(__pyx_v_source_contracts, __pyx_t_4);
              __pyx_t_4 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2606:                 water_available += (x.deliveries[source_contracts][wateryear] + x.projected_supply[source_contracts])*1000.0
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_source_contracts); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_source_contracts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_float_1000_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_water_available, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2606, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF_SET(__pyx_v_water_available, __pyx_t_7);
              __pyx_t_7 = 0;
+2607:                 water_constraint_by_source[source] += (x.deliveries[source_contracts][wateryear] + x.projected_supply[source_contracts])*1000.0
              __Pyx_INCREF(__pyx_v_source);
              __pyx_t_7 = __pyx_v_source;
              __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_water_constraint_by_source, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_source_contracts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_source_contracts); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = PyNumber_Add(__pyx_t_4, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = PyNumber_Multiply(__pyx_t_17, __pyx_float_1000_0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_t_7, __pyx_t_17) < 0)) __PYX_ERR(0, 2607, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2608:           water_constraint_by_source['GW'] = max(x.total_water_base - water_available, 0.0)
        __pyx_t_19 = 0.0;
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_total_water_base); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = PyNumber_Subtract(__pyx_t_8, __pyx_v_water_available); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_7 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = PyObject_RichCompare(__pyx_t_7, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        if (__pyx_t_3) {
          __pyx_t_17 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2608, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_8 = __pyx_t_17;
          __pyx_t_17 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_8 = __pyx_t_1;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __pyx_t_8;
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_water_constraint_by_source, __pyx_n_u_GW, __pyx_t_1) < 0)) __PYX_ERR(0, 2608, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2609:           i = 0
        __pyx_v_i = 0;
+2610:           x0 = np.zeros(len(x.acreage_by_pmp_crop_type))
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_13 = PyObject_Length(__pyx_t_8); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyInt_FromSsize_t(__pyx_t_13); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_17);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_17, function);
          }
        }
        __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_7, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_8);
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2610, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_XDECREF_SET(__pyx_v_x0, __pyx_t_1);
        __pyx_t_1 = 0;
+2611:           for i in range(0, len(x.acreage_by_pmp_crop_type)):
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2611, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_13 == ((Py_ssize_t)-1))) __PYX_ERR(0, 2611, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_15 = __pyx_t_13;
        for (__pyx_t_20 = 0; __pyx_t_20 < __pyx_t_15; __pyx_t_20+=1) {
          __pyx_v_i = __pyx_t_20;
+2612:             x0[i] = x.acreage_by_pmp_crop_type[i]
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_acreage_by_pmp_crop_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2612, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2612, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_v_x0, __pyx_v_i, __pyx_t_17, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 2612, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
+2613:           x.set_pmp_acreage(water_constraint_by_source, land_constraint, x0)
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_pmp_acreage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2613, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0};
          __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2613, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_17);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_water_constraint_by_source, __pyx_v_land_constraint, __pyx_v_x0};
          __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2613, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_17);
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_INCREF(__pyx_v_water_constraint_by_source);
          __Pyx_GIVEREF(__pyx_v_water_constraint_by_source);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_water_constraint_by_source);
          __Pyx_INCREF(__pyx_v_land_constraint);
          __Pyx_GIVEREF(__pyx_v_land_constraint);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_land_constraint);
          __Pyx_INCREF(__pyx_v_x0);
          __Pyx_GIVEREF(__pyx_v_x0);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_x0);
          __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2613, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 2614: 
+2615:     if dowy == 0:
  __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {
/* … */
  }
+2616:       for x in self.private_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2616, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_17 = __pyx_t_5; __Pyx_INCREF(__pyx_t_17); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2616, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_12 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2616, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_17))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_17)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2616, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_17, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2616, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2616, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_17, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2616, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_12(__pyx_t_17);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2616, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2617:         if wateryear > 0:
      __pyx_t_5 = PyObject_RichCompare(__pyx_v_wateryear, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2617, __pyx_L1_error)
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_3) {
/* … */
      }
+2618:           x.permanent_crop_growth(wateryear, self.days_in_month, self.non_leap_year)
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_permanent_crop_growth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2618, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2618, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2618, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
          __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_1);
          if (likely(__pyx_t_18)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_1, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_v_wateryear, __pyx_t_7, __pyx_t_8};
          __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2618, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
          PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_v_wateryear, __pyx_t_7, __pyx_t_8};
          __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2618, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_2 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          if (__pyx_t_18) {
            __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_18); __pyx_t_18 = NULL;
          }
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_t_8);
          __pyx_t_7 = 0;
          __pyx_t_8 = 0;
          __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2618, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2619:     for x in self.district_list:
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2619, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (likely(PyList_CheckExact(__pyx_t_17)) || PyTuple_CheckExact(__pyx_t_17)) {
    __pyx_t_5 = __pyx_t_17; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2619, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_17 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_17); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2619, __pyx_L1_error)
        #else
        __pyx_t_17 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2619, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_17); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2619, __pyx_L1_error)
        #else
        __pyx_t_17 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2619, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        #endif
      }
    } else {
      __pyx_t_17 = __pyx_t_12(__pyx_t_5);
      if (unlikely(!__pyx_t_17)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2619, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_17);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_17);
    __pyx_t_17 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2620:       x.calc_demand(wateryear, year_index, da, m, self.days_in_month, m1, wyt)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_t_2, __pyx_v_m1, __pyx_v_wyt};
      __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2620, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_t_2, __pyx_v_m1, __pyx_v_wyt};
      __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2620, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2620, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_year_index);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_m);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_t_2);
      __Pyx_INCREF(__pyx_v_m1);
      __Pyx_GIVEREF(__pyx_v_m1);
      PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_v_m1);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_2 = 0;
      __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2620, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2621:       if x.has_private:
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2621, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    if (__pyx_t_3) {
/* … */
    }
+2622:         x.private_demand = {}
      __pyx_t_17 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2622, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_demand, __pyx_t_17) < 0) __PYX_ERR(0, 2622, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2623:         x.private_delivery = {}
      __pyx_t_17 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2623, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_delivery, __pyx_t_17) < 0) __PYX_ERR(0, 2623, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2624:     for x in self.private_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_17 = __pyx_t_5; __Pyx_INCREF(__pyx_t_17); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2624, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_12 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2624, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_17))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_17)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2624, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_17, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2624, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2624, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_17, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2624, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_12(__pyx_t_17);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2624, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+2625:       x.calc_demand(wateryear, year_index, da, m, self.days_in_month, self.non_leap_year, m1, wyt)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_t_7, __pyx_t_2, __pyx_v_m1, __pyx_v_wyt};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2625, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_da, __pyx_v_m, __pyx_t_7, __pyx_t_2, __pyx_v_m1, __pyx_v_wyt};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2625, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_18 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2625, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_6, __pyx_v_year_index);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_6, __pyx_v_m);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_6, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_6, __pyx_t_2);
      __Pyx_INCREF(__pyx_v_m1);
      __Pyx_GIVEREF(__pyx_v_m1);
      PyTuple_SET_ITEM(__pyx_t_18, 6+__pyx_t_6, __pyx_v_m1);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_18, 7+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_7 = 0;
      __pyx_t_2 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_18, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2625, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2626: 
 2627:     ###For demands that occur on a branch of the California Aqueduct
 2628: 	###(i.e. pumped into some kind of regional urban storage/distribution 
 2629: 	###systems, daily demand are just the observed pumping (i.e. no model of 
 2630: 	###the southern California/South Bay/Central Coast urban demand).  To run the
 2631: 	###model in projection mode, we need statistical series of pumping at each of the Cal Aqueduct
 2632: 	###branches.  Note:  for Bakersfield and Fresno in the local water systems, demands are deterministic
 2633: 	###seasonal estimates.  Adding in pop. growth, etc. would be trivial, but is not included
+2634:     if t > 0:
  __pyx_t_17 = PyObject_RichCompare(__pyx_v_t, __pyx_int_0, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2634, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2634, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L38;
  }
+2635:       allocation_change = self.swp_allocation[t] - self.swp_allocation[t-1]
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2635, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_v_allocation_change = __pyx_t_1;
    __pyx_t_1 = 0;
 2636:     else:
+2637:       allocation_change = 0.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_allocation_change = __pyx_float_0_0;
  }
  __pyx_L38:;
+2638:     for x in self.urban_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_urban_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_18 = __pyx_t_1; __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2638, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_18))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2638, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2638, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2638, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2638, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_18);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2638, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2639:       x.get_urban_demand(t, m, da, dowy, wateryear, year_index, self.dowy_eom, self.forecastSRI[t], self.swp_allocation[t], allocation_change, self.model_mode)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2639, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[12] = {__pyx_t_4, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_17, __pyx_t_7, __pyx_t_8, __pyx_v_allocation_change, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2639, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[12] = {__pyx_t_4, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_17, __pyx_t_7, __pyx_t_8, __pyx_v_allocation_change, __pyx_t_2};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2639, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_21 = PyTuple_New(11+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_6, __pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_t_17);
      PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_6, __pyx_t_17);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_6, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_21, 8+__pyx_t_6, __pyx_t_8);
      __Pyx_INCREF(__pyx_v_allocation_change);
      __Pyx_GIVEREF(__pyx_v_allocation_change);
      PyTuple_SET_ITEM(__pyx_t_21, 9+__pyx_t_6, __pyx_v_allocation_change);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_21, 10+__pyx_t_6, __pyx_t_2);
      __pyx_t_17 = 0;
      __pyx_t_7 = 0;
      __pyx_t_8 = 0;
      __pyx_t_2 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_21, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2640:     for x in self.city_list:
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2640, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
    __pyx_t_1 = __pyx_t_18; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2640, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2640, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2640, __pyx_L1_error)
        #else
        __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2640, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        #endif
      }
    } else {
      __pyx_t_18 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_18)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2640, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_18);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
    __pyx_t_18 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2641:       x.get_urban_demand(t, m, da, wateryear, year_index, self.dowy_eom, self.forecastSRI[t], dowy, self.swp_allocation[t], allocation_change, self.model_mode)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_model_mode); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2641, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_17 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_17)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_17);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[12] = {__pyx_t_17, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_21, __pyx_t_8, __pyx_v_dowy, __pyx_t_7, __pyx_v_allocation_change, __pyx_t_2};
      __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2641, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[12] = {__pyx_t_17, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_21, __pyx_t_8, __pyx_v_dowy, __pyx_t_7, __pyx_v_allocation_change, __pyx_t_2};
      __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2641, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(11+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_17) {
        __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_17); __pyx_t_17 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_6, __pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_6, __pyx_t_21);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_6, __pyx_t_8);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_4, 7+__pyx_t_6, __pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_4, 8+__pyx_t_6, __pyx_t_7);
      __Pyx_INCREF(__pyx_v_allocation_change);
      __Pyx_GIVEREF(__pyx_v_allocation_change);
      PyTuple_SET_ITEM(__pyx_t_4, 9+__pyx_t_6, __pyx_v_allocation_change);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_4, 10+__pyx_t_6, __pyx_t_2);
      __pyx_t_21 = 0;
      __pyx_t_8 = 0;
      __pyx_t_7 = 0;
      __pyx_t_2 = 0;
      __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2642:     #else:
 2643:       #self.project_urban_pumping(da, dowy, m, wateryear, year_index, self.swp_allocation[t], self.cvp_allocation[t], self.forecastSRI[t])
 2644: 
+2645:     if m == 10 and da == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_11) {
  } else {
    __pyx_t_3 = __pyx_t_11;
    goto __pyx_L44_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2645, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_t_11;
  __pyx_L44_bool_binop_done:;
  if (__pyx_t_3) {
/* … */
  }
 2646: 	  ###Pre flood demands - used to approximate the limit 
 2647:       ###for carryover storage (don't want to carryover more water than you can
 2648:       ###use from Oct-Jan).  Values for aqueduct branches are estimated to 
 2649:       ###avoid 'perfect foresight'
+2650:       for x in self.district_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_18 = __pyx_t_1; __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2650, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2650, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_18))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2650, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2650, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2650, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2650, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_18);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2650, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2651:         x.find_baseline_demands(wateryear, self.non_leap_year, self.days_in_month)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_wateryear, __pyx_t_4, __pyx_t_2};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2651, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[4] = {__pyx_t_7, __pyx_v_wateryear, __pyx_t_4, __pyx_t_2};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2651, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2651, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_t_2);
        __pyx_t_4 = 0;
        __pyx_t_2 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2651, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2652:       for x in self.private_list:
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2652, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
      __pyx_t_1 = __pyx_t_18; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2652, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2652, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2652, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2652, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2652, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2652, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        }
      } else {
        __pyx_t_18 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_18)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2652, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_18);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
      __pyx_t_18 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2653:         x.find_baseline_demands(self.non_leap_year, self.days_in_month)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_baseline_demands); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2653, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_non_leap_year); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2653, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2653, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_8, __pyx_t_2};
        __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2653, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[3] = {__pyx_t_4, __pyx_t_8, __pyx_t_2};
        __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2653, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2653, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_2);
        __pyx_t_8 = 0;
        __pyx_t_2 = 0;
        __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2653, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2654: 
+2655:       for x in self.urban_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_urban_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2655, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_18 = __pyx_t_1; __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2655, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2655, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_18))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2655, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2655, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2655, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2655, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_18);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2655, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2656:         x.find_pre_flood_demand(year_index, self.days_in_month, wyt)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_pre_flood_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2656, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2656, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_year_index, __pyx_t_7, __pyx_v_wyt};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2656, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_year_index, __pyx_t_7, __pyx_v_wyt};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2656, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_2) {
          __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_2); __pyx_t_2 = NULL;
        }
        __Pyx_INCREF(__pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_v_year_index);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_t_7);
        __Pyx_INCREF(__pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_v_wyt);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_v_wyt);
        __pyx_t_7 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2656, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2657:       self.socal.pre_flood_demand = 500.0
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2657, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_pre_flood_demand, __pyx_float_500_0) < 0) __PYX_ERR(0, 2657, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2658:       self.centralcoast.pre_flood_demand = 25.0
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2658, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_pre_flood_demand, __pyx_float_25_0) < 0) __PYX_ERR(0, 2658, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2659:       self.southbay.pre_flood_demand = 15.0
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2659, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_18, __pyx_n_s_pre_flood_demand, __pyx_float_15_0) < 0) __PYX_ERR(0, 2659, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2660: 
 2661:       ###Take the monthly demands for each irrigation district and
 2662:       ###'assign' them to a reservoir - this is used to estimate 
 2663:       ###fillup times so that districts know when to request recharge water
 2664:       #generates res.monthlydemand from aggregated district.monthlydemand
+2665:     if da == 1:
  __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2665, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2665, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_3) {
/* … */
  }
+2666:       self.agg_contract_demands(year_index, m, wyt)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_agg_contract_demands); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_18);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_18);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_year_index);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_8, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2666, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2667: 
 2668:     ##Once a month, find the recharge capacity for each irrigation district
 2669:     ###This capacity is projected forward for a year to project how capacity would decline
 2670:     ###under continuous use - recalculated every month to update for actual use
 2671:     #generates self.district.max_leiu_recharge & self.district.max_direct_recharge
+2672:     if da == 1:
  __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2672, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2672, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if (__pyx_t_3) {
/* … */
  }
+2673:       for x in self.district_list:
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2673, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
      __pyx_t_1 = __pyx_t_18; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2673, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2673, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2673, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2673, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        }
      } else {
        __pyx_t_18 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_18)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2673, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_18);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
      __pyx_t_18 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2674:         x.reset_recharge_recovery()
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_18 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2674, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2675:       for x in self.private_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_18 = __pyx_t_1; __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2675, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_12 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2675, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_18))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2675, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2675, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_18);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2675, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+2676:         x.reset_recharge_recovery()
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2676, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_1 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2676, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2677:       for x in self.city_list:
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
      __pyx_t_1 = __pyx_t_18; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2677, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2677, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2677, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_18); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2677, __pyx_L1_error)
          #else
          __pyx_t_18 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          #endif
        }
      } else {
        __pyx_t_18 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_18)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2677, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_18);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_18);
      __pyx_t_18 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2678:         x.reset_recharge_recovery()
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reset_recharge_recovery); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2678, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_18 = (__pyx_t_5) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_5) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2678, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 2679:       ##searches through all waterbanks to find recharge capacity,
 2680: 	  ##applies that capacity to districts by ownership shares
+2681:       self.find_recharge_bank(m,wyt)
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_recharge_bank); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2681, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_18);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_18, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2681, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2681, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2681, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2682:       ##searches through all leiu bankign districts to find recharge capacity,
 2683: 	  ##applies that capacity to districts by ownership shares
+2684:       self.find_recharge_leiu(m,wyt)
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_recharge_leiu); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_18);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_18, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2684, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2684, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2684, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2685:       ##searches through all districts to find native recharge capacity
+2686:       self.find_recharge_indistrict(m,wyt)
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_recharge_indistrict); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_18);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_18, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2686, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_m, __pyx_v_wyt};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2686, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2686, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2687:       self.find_leiu_exchange(wateryear, dowy)
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_leiu_exchange); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2687, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_18);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_18, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_wateryear, __pyx_v_dowy};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2687, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_wateryear, __pyx_v_dowy};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2687, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_dowy);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_8, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2687, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2688: 
 2689: 
 2690: 	#Find the number of days before each reservoir is expected to fill-up	  
 2691:     ##Get Article 21 water from San Luis
 2692: 	#for san luis - need to know if we can use the xvc from california aquduct - check for turnout to xvc from kern river and fkc
 2693:     ###find flood releases for the SWP at san luis (self.sanluisstate.min_daily_uncontrolled) - also find release toggles (for northern reservoir pumping coordination w/ san luis) and numdays_fillup for SWP district recharge decisions
+2694:     expected_pumping = self.estimate_project_pumping(t, proj_surplus, max_pumping, swp_AS, cvp_AS, self.max_tax_free, flood_release, wytSC)
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_estimate_project_pumping); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_tax_free); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2694, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_18);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_18, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_18)) {
    PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_t_8, __pyx_v_flood_release, __pyx_v_wytSC};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
    PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_t_8, __pyx_v_flood_release, __pyx_v_wytSC};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_proj_surplus);
    __Pyx_GIVEREF(__pyx_v_proj_surplus);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_proj_surplus);
    __Pyx_INCREF(__pyx_v_max_pumping);
    __Pyx_GIVEREF(__pyx_v_max_pumping);
    PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_max_pumping);
    __Pyx_INCREF(__pyx_v_swp_AS);
    __Pyx_GIVEREF(__pyx_v_swp_AS);
    PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_swp_AS);
    __Pyx_INCREF(__pyx_v_cvp_AS);
    __Pyx_GIVEREF(__pyx_v_cvp_AS);
    PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_v_cvp_AS);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_t_8);
    __Pyx_INCREF(__pyx_v_flood_release);
    __Pyx_GIVEREF(__pyx_v_flood_release);
    PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_v_flood_release);
    __Pyx_INCREF(__pyx_v_wytSC);
    __Pyx_GIVEREF(__pyx_v_wytSC);
    PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_6, __pyx_v_wytSC);
    __pyx_t_8 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  __pyx_v_expected_pumping = __pyx_t_1;
  __pyx_t_1 = 0;
+2695:     swp_release, swp_release2, self.sanluisstate.min_daily_uncontrolled, self.sanluisstate.numdays_fillup['demand'], fill_up_cross_swp = self.find_pumping_release(m, da, year_index, self.sanluisstate.S[t], 6680.0*cfs_tafd, self.sanluisstate.monthly_demand, self.sanluisstate.monthly_demand_must_fill, self.swpdelta.allocation[t-1]/self.swpdelta.total, expected_pumping['swp'], swp_AF, swp_AS, flood_volume['swp'], self.swpdelta.projected_carryover, self.swpdelta.running_carryover, self.max_tax_free, wyt, t, 'swp')
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_pumping_release); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_S); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_allocation); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_total); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_21); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __pyx_t_21 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_volume, __pyx_n_u_swp); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_projected_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_tax_free); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_25 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
    __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_18);
    if (likely(__pyx_t_25)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
      __Pyx_INCREF(__pyx_t_25);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_18, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_18)) {
    PyObject *__pyx_temp[19] = {__pyx_t_25, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_7, __pyx_t_5, __pyx_t_2, __pyx_t_4, __pyx_t_8, __pyx_t_21, __pyx_v_swp_AF, __pyx_v_swp_AS, __pyx_t_17, __pyx_t_23, __pyx_t_24, __pyx_t_22, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_swp};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 18+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2695, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
    PyObject *__pyx_temp[19] = {__pyx_t_25, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_7, __pyx_t_5, __pyx_t_2, __pyx_t_4, __pyx_t_8, __pyx_t_21, __pyx_v_swp_AF, __pyx_v_swp_AS, __pyx_t_17, __pyx_t_23, __pyx_t_24, __pyx_t_22, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_swp};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 18+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2695, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  {
    __pyx_t_26 = PyTuple_New(18+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2695, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    if (__pyx_t_25) {
      __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_25); __pyx_t_25 = NULL;
    }
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_6, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_da);
    __Pyx_GIVEREF(__pyx_v_da);
    PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_6, __pyx_v_da);
    __Pyx_INCREF(__pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_v_year_index);
    PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_6, __pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_6, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_6, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_6, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_6, __pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_21);
    PyTuple_SET_ITEM(__pyx_t_26, 8+__pyx_t_6, __pyx_t_21);
    __Pyx_INCREF(__pyx_v_swp_AF);
    __Pyx_GIVEREF(__pyx_v_swp_AF);
    PyTuple_SET_ITEM(__pyx_t_26, 9+__pyx_t_6, __pyx_v_swp_AF);
    __Pyx_INCREF(__pyx_v_swp_AS);
    __Pyx_GIVEREF(__pyx_v_swp_AS);
    PyTuple_SET_ITEM(__pyx_t_26, 10+__pyx_t_6, __pyx_v_swp_AS);
    __Pyx_GIVEREF(__pyx_t_17);
    PyTuple_SET_ITEM(__pyx_t_26, 11+__pyx_t_6, __pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_23);
    PyTuple_SET_ITEM(__pyx_t_26, 12+__pyx_t_6, __pyx_t_23);
    __Pyx_GIVEREF(__pyx_t_24);
    PyTuple_SET_ITEM(__pyx_t_26, 13+__pyx_t_6, __pyx_t_24);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_26, 14+__pyx_t_6, __pyx_t_22);
    __Pyx_INCREF(__pyx_v_wyt);
    __Pyx_GIVEREF(__pyx_v_wyt);
    PyTuple_SET_ITEM(__pyx_t_26, 15+__pyx_t_6, __pyx_v_wyt);
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_26, 16+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_n_u_swp);
    __Pyx_GIVEREF(__pyx_n_u_swp);
    PyTuple_SET_ITEM(__pyx_t_26, 17+__pyx_t_6, __pyx_n_u_swp);
    __pyx_t_7 = 0;
    __pyx_t_5 = 0;
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_8 = 0;
    __pyx_t_21 = 0;
    __pyx_t_17 = 0;
    __pyx_t_23 = 0;
    __pyx_t_24 = 0;
    __pyx_t_22 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2695, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  }
  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 5)) {
      if (size > 5) __Pyx_RaiseTooManyValuesError(5);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2695, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_18 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_22 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_24 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_23 = PyTuple_GET_ITEM(sequence, 4); 
    } else {
      __pyx_t_18 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_26 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_22 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_24 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_23 = PyList_GET_ITEM(sequence, 4); 
    }
    __Pyx_INCREF(__pyx_t_18);
    __Pyx_INCREF(__pyx_t_26);
    __Pyx_INCREF(__pyx_t_22);
    __Pyx_INCREF(__pyx_t_24);
    __Pyx_INCREF(__pyx_t_23);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[5] = {&__pyx_t_18,&__pyx_t_26,&__pyx_t_22,&__pyx_t_24,&__pyx_t_23};
      for (i=0; i < 5; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 2695, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[5] = {&__pyx_t_18,&__pyx_t_26,&__pyx_t_22,&__pyx_t_24,&__pyx_t_23};
    __pyx_t_17 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2695, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_10 = Py_TYPE(__pyx_t_17)->tp_iternext;
    for (index=0; index < 5; index++) {
      PyObject* item = __pyx_t_10(__pyx_t_17); if (unlikely(!item)) goto __pyx_L60_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_17), 5) < 0) __PYX_ERR(0, 2695, __pyx_L1_error)
    __pyx_t_10 = NULL;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    goto __pyx_L61_unpacking_done;
    __pyx_L60_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_10 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2695, __pyx_L1_error)
    __pyx_L61_unpacking_done:;
  }
  __pyx_v_swp_release = __pyx_t_18;
  __pyx_t_18 = 0;
  __pyx_v_swp_release2 = __pyx_t_26;
  __pyx_t_26 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_17, __pyx_n_s_min_daily_uncontrolled, __pyx_t_22) < 0) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_n_u_demand, __pyx_t_24) < 0)) __PYX_ERR(0, 2695, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
  __pyx_v_fill_up_cross_swp = __pyx_t_23;
  __pyx_t_23 = 0;
 2696: 
 2697:     ###find flood releases for the CVP at san luis (self.sanluisfederal.min_daily_uncontrolled) - also find release toggles (for northern reservoir pumping coordination w/ san luis) and numdays_fillup for SWP district recharge decisions
+2698:     cvp_release, cvp_release2, self.sanluisfederal.min_daily_uncontrolled, self.sanluisfederal.numdays_fillup['demand'], fill_up_cross_cvp = self.find_pumping_release(m, da, year_index, self.sanluisfederal.S[t], 4430.0*cfs_tafd, self.sanluisfederal.monthly_demand, self.sanluisfederal.monthly_demand_must_fill, (self.cvpdelta.allocation[t-1] + self.cvpexchange.allocation[t-1])/(self.cvpexchange.total+self.cvpdelta.total), expected_pumping['cvp'], cvp_AF, cvp_AS, flood_volume['cvp'], self.cvpdelta.projected_carryover, self.cvpdelta.running_carryover + self.cvpexchange.running_carryover + self.crossvalley.running_carryover, self.max_tax_free, wyt, t, 'cvp')
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_pumping_release); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_S); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
  __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_24);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_26 = PyNumber_Multiply(__pyx_float_4430_0, __pyx_t_22); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_18);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_allocation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_22); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_allocation); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = PyNumber_Add(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_total); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_total); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Add(__pyx_t_8, __pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
  __pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_t_22, __pyx_t_4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_17);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_volume, __pyx_n_u_cvp); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_projected_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_Add(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = PyNumber_Add(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_max_tax_free); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_23);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_23, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_23)) {
    PyObject *__pyx_temp[19] = {__pyx_t_8, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_24, __pyx_t_26, __pyx_t_18, __pyx_t_21, __pyx_t_17, __pyx_t_4, __pyx_v_cvp_AF, __pyx_v_cvp_AS, __pyx_t_22, __pyx_t_2, __pyx_t_7, __pyx_t_5, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_cvp};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 18+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
    PyObject *__pyx_temp[19] = {__pyx_t_8, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_t_24, __pyx_t_26, __pyx_t_18, __pyx_t_21, __pyx_t_17, __pyx_t_4, __pyx_v_cvp_AF, __pyx_v_cvp_AS, __pyx_t_22, __pyx_t_2, __pyx_t_7, __pyx_t_5, __pyx_v_wyt, __pyx_v_t, __pyx_n_u_cvp};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 18+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else
  #endif
  {
    __pyx_t_25 = PyTuple_New(18+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    if (__pyx_t_8) {
      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_8); __pyx_t_8 = NULL;
    }
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_6, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_da);
    __Pyx_GIVEREF(__pyx_v_da);
    PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_6, __pyx_v_da);
    __Pyx_INCREF(__pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_v_year_index);
    PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_6, __pyx_v_year_index);
    __Pyx_GIVEREF(__pyx_t_24);
    PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_6, __pyx_t_24);
    __Pyx_GIVEREF(__pyx_t_26);
    PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_6, __pyx_t_26);
    __Pyx_GIVEREF(__pyx_t_18);
    PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_6, __pyx_t_18);
    __Pyx_GIVEREF(__pyx_t_21);
    PyTuple_SET_ITEM(__pyx_t_25, 6+__pyx_t_6, __pyx_t_21);
    __Pyx_GIVEREF(__pyx_t_17);
    PyTuple_SET_ITEM(__pyx_t_25, 7+__pyx_t_6, __pyx_t_17);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_25, 8+__pyx_t_6, __pyx_t_4);
    __Pyx_INCREF(__pyx_v_cvp_AF);
    __Pyx_GIVEREF(__pyx_v_cvp_AF);
    PyTuple_SET_ITEM(__pyx_t_25, 9+__pyx_t_6, __pyx_v_cvp_AF);
    __Pyx_INCREF(__pyx_v_cvp_AS);
    __Pyx_GIVEREF(__pyx_v_cvp_AS);
    PyTuple_SET_ITEM(__pyx_t_25, 10+__pyx_t_6, __pyx_v_cvp_AS);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_25, 11+__pyx_t_6, __pyx_t_22);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_25, 12+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_25, 13+__pyx_t_6, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_25, 14+__pyx_t_6, __pyx_t_5);
    __Pyx_INCREF(__pyx_v_wyt);
    __Pyx_GIVEREF(__pyx_v_wyt);
    PyTuple_SET_ITEM(__pyx_t_25, 15+__pyx_t_6, __pyx_v_wyt);
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_25, 16+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_n_u_cvp);
    __Pyx_GIVEREF(__pyx_n_u_cvp);
    PyTuple_SET_ITEM(__pyx_t_25, 17+__pyx_t_6, __pyx_n_u_cvp);
    __pyx_t_24 = 0;
    __pyx_t_26 = 0;
    __pyx_t_18 = 0;
    __pyx_t_21 = 0;
    __pyx_t_17 = 0;
    __pyx_t_4 = 0;
    __pyx_t_22 = 0;
    __pyx_t_2 = 0;
    __pyx_t_7 = 0;
    __pyx_t_5 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_25, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
  }
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 5)) {
      if (size > 5) __Pyx_RaiseTooManyValuesError(5);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 2698, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_23 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_25 = PyTuple_GET_ITEM(sequence, 1); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 2); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 3); 
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 4); 
    } else {
      __pyx_t_23 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_25 = PyList_GET_ITEM(sequence, 1); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 2); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 3); 
      __pyx_t_2 = PyList_GET_ITEM(sequence, 4); 
    }
    __Pyx_INCREF(__pyx_t_23);
    __Pyx_INCREF(__pyx_t_25);
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_2);
    #else
    {
      Py_ssize_t i;
      PyObject** temps[5] = {&__pyx_t_23,&__pyx_t_25,&__pyx_t_5,&__pyx_t_7,&__pyx_t_2};
      for (i=0; i < 5; i++) {
        PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 2698, __pyx_L1_error)
        __Pyx_GOTREF(item);
        *(temps[i]) = item;
      }
    }
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    PyObject** temps[5] = {&__pyx_t_23,&__pyx_t_25,&__pyx_t_5,&__pyx_t_7,&__pyx_t_2};
    __pyx_t_22 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_10 = Py_TYPE(__pyx_t_22)->tp_iternext;
    for (index=0; index < 5; index++) {
      PyObject* item = __pyx_t_10(__pyx_t_22); if (unlikely(!item)) goto __pyx_L62_unpacking_failed;
      __Pyx_GOTREF(item);
      *(temps[index]) = item;
    }
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_22), 5) < 0) __PYX_ERR(0, 2698, __pyx_L1_error)
    __pyx_t_10 = NULL;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    goto __pyx_L63_unpacking_done;
    __pyx_L62_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_10 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 2698, __pyx_L1_error)
    __pyx_L63_unpacking_done:;
  }
  __pyx_v_cvp_release = __pyx_t_23;
  __pyx_t_23 = 0;
  __pyx_v_cvp_release2 = __pyx_t_25;
  __pyx_t_25 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_22, __pyx_n_s_min_daily_uncontrolled, __pyx_t_5) < 0) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_demand, __pyx_t_7) < 0)) __PYX_ERR(0, 2698, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_fill_up_cross_cvp = __pyx_t_2;
  __pyx_t_2 = 0;
 2699: 
+2700:     self.sanluisfederal.days_til_full[t] = min(self.sanluisfederal.numdays_fillup['demand'],fill_up_cross_cvp)
  __Pyx_INCREF(__pyx_v_fill_up_cross_cvp);
  __pyx_t_1 = __pyx_v_fill_up_cross_cvp;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_demand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_7 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_7 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_7;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_days_til_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 2700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2701:     self.sanluisstate.days_til_full[t] = min(self.sanluisstate.numdays_fillup['demand'],fill_up_cross_swp)
  __Pyx_INCREF(__pyx_v_fill_up_cross_swp);
  __pyx_t_1 = __pyx_v_fill_up_cross_swp;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_demand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_7 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_7 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_7;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_days_til_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 2701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2702: 
 2703:     ###June 1st, determine who is buying/selling into 'turnback pools' for the SWP.
 2704:     ###Note: look into other contract types to determine if this happens in CVP, Friant, local source contracts too
+2705:     if m == 6 and da == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_6, 6, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2705, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_11) {
  } else {
    __pyx_t_3 = __pyx_t_11;
    goto __pyx_L65_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2705, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __pyx_t_11;
  __pyx_L65_bool_binop_done:;
  if (__pyx_t_3) {
/* … */
  }
+2706:       for y in self.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2706, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2706, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2706, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2706, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2706, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2706, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+2707:         seller_total = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_seller_total, __pyx_float_0_0);
+2708:         buyer_total = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_buyer_total, __pyx_float_0_0);
+2709:         for x in self.district_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2709, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2709, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2709, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2709, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2709, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2709, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2709, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_14(__pyx_t_7);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2709, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2710:           seller_turnback, buyer_turnback = x.set_turnback_pool(y.name, year_index, self.days_in_month)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_turnback_pool); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2710, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2710, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2710, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_4 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_25, __pyx_v_year_index, __pyx_t_23};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[4] = {__pyx_t_4, __pyx_t_25, __pyx_v_year_index, __pyx_t_23};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        {
          __pyx_t_22 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_t_25);
          __Pyx_INCREF(__pyx_v_year_index);
          __Pyx_GIVEREF(__pyx_v_year_index);
          PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_v_year_index);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_6, __pyx_t_23);
          __pyx_t_25 = 0;
          __pyx_t_23 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
          PyObject* sequence = __pyx_t_1;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 2710, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_22 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_22);
          #else
          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_22 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_23 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2710, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_23)->tp_iternext;
          index = 0; __pyx_t_5 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_5)) goto __pyx_L71_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_5);
          index = 1; __pyx_t_22 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_22)) goto __pyx_L71_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_22);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_23), 2) < 0) __PYX_ERR(0, 2710, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          goto __pyx_L72_unpacking_done;
          __pyx_L71_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 2710, __pyx_L1_error)
          __pyx_L72_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_seller_turnback, __pyx_t_5);
        __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_buyer_turnback, __pyx_t_22);
        __pyx_t_22 = 0;
+2711:           seller_total += seller_turnback
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_seller_total, __pyx_v_seller_turnback); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_seller_total, __pyx_t_1);
        __pyx_t_1 = 0;
+2712:           buyer_total += buyer_turnback
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_buyer_total, __pyx_v_buyer_turnback); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_buyer_total, __pyx_t_1);
        __pyx_t_1 = 0;
+2713:         for x in self.city_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2713, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2713, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2713, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2713, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2713, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2713, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2713, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_14(__pyx_t_1);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2713, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2714:           total_contract = {}
        __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2714, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_7);
        __pyx_t_7 = 0;
+2715:           for xx in x.district_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2715, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_22 = __pyx_t_7; __Pyx_INCREF(__pyx_t_22); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2715, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_16 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2715, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_22))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_22)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2715, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_22, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2715, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2715, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_22, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2715, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_16(__pyx_t_22);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2715, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 2716:             # district_object = self.district_keys[xx]
+2717:             total_contract[xx] = self.district_keys[xx].project_contract['tableA']
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2717, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2717, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2717, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_tableA); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2717, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(PyObject_SetItem(__pyx_v_total_contract, __pyx_v_xx, __pyx_t_5) < 0)) __PYX_ERR(0, 2717, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2718:           additional_carryover = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+2719:           seller_turnback, buyer_turnback = x.set_turnback_pool(y.name, year_index, self.days_in_month, additional_carryover)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_turnback_pool); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2719, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2719, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2719, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_25 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_25)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_25);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[5] = {__pyx_t_25, __pyx_t_7, __pyx_v_year_index, __pyx_t_23, __pyx_v_additional_carryover};
          __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[5] = {__pyx_t_25, __pyx_t_7, __pyx_v_year_index, __pyx_t_23, __pyx_v_additional_carryover};
          __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        {
          __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (__pyx_t_25) {
            __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); __pyx_t_25 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_7);
          __Pyx_INCREF(__pyx_v_year_index);
          __Pyx_GIVEREF(__pyx_v_year_index);
          PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_year_index);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_t_23);
          __Pyx_INCREF(__pyx_v_additional_carryover);
          __Pyx_GIVEREF(__pyx_v_additional_carryover);
          PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_additional_carryover);
          __pyx_t_7 = 0;
          __pyx_t_23 = 0;
          __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_4, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
          PyObject* sequence = __pyx_t_22;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 2719, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_4 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_4 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_4);
          #else
          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_23 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2719, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_23)->tp_iternext;
          index = 0; __pyx_t_5 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_5)) goto __pyx_L77_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_5);
          index = 1; __pyx_t_4 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_4)) goto __pyx_L77_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_4);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_23), 2) < 0) __PYX_ERR(0, 2719, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          goto __pyx_L78_unpacking_done;
          __pyx_L77_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 2719, __pyx_L1_error)
          __pyx_L78_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_seller_turnback, __pyx_t_5);
        __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_buyer_turnback, __pyx_t_4);
        __pyx_t_4 = 0;
+2720:           for xx in x.district_list:
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
          __pyx_t_4 = __pyx_t_22; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2720, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2720, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_4))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_22 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2720, __pyx_L1_error)
              #else
              __pyx_t_22 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2720, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2720, __pyx_L1_error)
              #else
              __pyx_t_22 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2720, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              #endif
            }
          } else {
            __pyx_t_22 = __pyx_t_16(__pyx_t_4);
            if (unlikely(!__pyx_t_22)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2720, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_22);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_22);
          __pyx_t_22 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2721:             seller_total += seller_turnback[xx]
          __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_v_seller_turnback, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_seller_total, __pyx_t_22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF_SET(__pyx_v_seller_total, __pyx_t_5);
          __pyx_t_5 = 0;
+2722:             buyer_total += buyer_turnback[xx]
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_buyer_turnback, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_v_buyer_total, __pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2722, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF_SET(__pyx_v_buyer_total, __pyx_t_22);
          __pyx_t_22 = 0;
 2723: 
+2724:         for x in self.district_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2724, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2724, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_14 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2724, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2724, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2724, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2724, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2724, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_14(__pyx_t_4);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2724, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2725:           x.make_turnback_purchases(seller_total, buyer_total, y.name)
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_make_turnback_purchases); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2725, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2725, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_23 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
          __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_22);
          if (likely(__pyx_t_23)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
            __Pyx_INCREF(__pyx_t_23);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_22, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_22)) {
          PyObject *__pyx_temp[4] = {__pyx_t_23, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2725, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
          PyObject *__pyx_temp[4] = {__pyx_t_23, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_t_5};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2725, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2725, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_23) {
            __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_23); __pyx_t_23 = NULL;
          }
          __Pyx_INCREF(__pyx_v_seller_total);
          __Pyx_GIVEREF(__pyx_v_seller_total);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_seller_total);
          __Pyx_INCREF(__pyx_v_buyer_total);
          __Pyx_GIVEREF(__pyx_v_buyer_total);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_buyer_total);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_5);
          __pyx_t_5 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2725, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2726:         for x in self.city_list:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2726, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
        __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2726, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2726, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2726, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_4); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2726, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2726, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_14(__pyx_t_1);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2726, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
        __pyx_t_4 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2727:           x.make_turnback_purchases(seller_total, buyer_total, y.name)
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_make_turnback_purchases); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2727, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2727, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_22);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_22, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_22)) {
          PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_t_7};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2727, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
          PyObject *__pyx_temp[4] = {__pyx_t_5, __pyx_v_seller_total, __pyx_v_buyer_total, __pyx_t_7};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2727, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else
        #endif
        {
          __pyx_t_23 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2727, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_INCREF(__pyx_v_seller_total);
          __Pyx_GIVEREF(__pyx_v_seller_total);
          PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_seller_total);
          __Pyx_INCREF(__pyx_v_buyer_total);
          __Pyx_GIVEREF(__pyx_v_buyer_total);
          PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_buyer_total);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_7);
          __pyx_t_7 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_23, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2727, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 2728: 
 2729: 
 2730: 
 2731:     ####This function finds the expected # of days that a reservoir will fill
 2732: 	####districts use this numdays_fillup attribute to determine when to recharge
 2733: 	####carryover water
+2734:     for reservoir in [self.success, self.kaweah, self.isabella, self.pineflat, self.millerton]:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_7 = PyTuple_New(5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2734, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_22);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_23);
  PyTuple_SET_ITEM(__pyx_t_7, 4, __pyx_t_23);
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_22 = 0;
  __pyx_t_23 = 0;
  __pyx_t_23 = __pyx_t_7; __Pyx_INCREF(__pyx_t_23); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (__pyx_t_9 >= 5) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2734, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2735:       reservoir.find_flow_pumping(t, m, dowy, year_index, self.days_in_month, self.dowy_eom, wyt, 'demand')
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_find_flow_pumping); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2735, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_22);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_22, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[9] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_t_4, __pyx_t_1, __pyx_v_wyt, __pyx_n_u_demand};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2735, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[9] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_year_index, __pyx_t_4, __pyx_t_1, __pyx_v_wyt, __pyx_n_u_demand};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2735, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2735, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_v_year_index);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_6, __pyx_v_year_index);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_6, __pyx_t_4);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_6, __pyx_t_1);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_6, __pyx_v_wyt);
      __Pyx_INCREF(__pyx_n_u_demand);
      __Pyx_GIVEREF(__pyx_n_u_demand);
      PyTuple_SET_ITEM(__pyx_t_5, 7+__pyx_t_6, __pyx_n_u_demand);
      __pyx_t_4 = 0;
      __pyx_t_1 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_5, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2735, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2736:       reservoir.days_til_full[t] = min(reservoir.numdays_fillup['demand'], reservoir.numdays_fillup['lookahead'])
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_22, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_22);
      __pyx_t_7 = __pyx_t_22;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_7 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = __pyx_t_7;
    __Pyx_INCREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_days_til_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_t, __pyx_t_22) < 0)) __PYX_ERR(0, 2736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 2737: 
 2738: 	#Update Contract Allocations
+2739:     for y in self.contract_list:
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2739, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
    __pyx_t_22 = __pyx_t_23; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2739, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2739, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_23 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2739, __pyx_L1_error)
        #else
        __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2739, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2739, __pyx_L1_error)
        #else
        __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2739, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        #endif
      }
    } else {
      __pyx_t_23 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_23)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2739, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_23);
    }
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_23);
    __pyx_t_23 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 2740:       #for a specific contract, look up the reservoir it is stored in
+2741:       reservoir = self.contract_reservoir[y.key]
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2741, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_5);
    __pyx_t_5 = 0;
 2742:       #then find all the contracts associated with that reservoir
+2743:       this_reservoir_all_contract = self.reservoir_contract[reservoir.key]
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_23);
    __pyx_t_23 = 0;
 2744:       #need to find the total deliveries already made from the reservoir,
 2745: 	  #total carryover storage at the reservoir, and the total priority/secondary allocations
 2746: 	  #at that reservoir
+2747:       priority_deliveries = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_priority_deliveries, __pyx_float_0_0);
+2748:       secondary_deliveries = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_secondary_deliveries, __pyx_float_0_0);
+2749:       total_res_carryover = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_total_res_carryover, __pyx_float_0_0);
+2750:       priority_contract = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_priority_contract, __pyx_float_0_0);
+2751:       secondary_contract = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_secondary_contract, __pyx_float_0_0);
+2752:       extra_allocation = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_extra_allocation, __pyx_float_0_0);
+2753:       for yy in this_reservoir_all_contract:
    if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) {
      __pyx_t_23 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_23); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2753, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_14 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2753, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_23))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2753, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2753, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2753, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2753, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_14(__pyx_t_23);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2753, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2754:         total_res_carryover += yy.tot_carryover
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2754, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_total_res_carryover, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2754, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_total_res_carryover, __pyx_t_5);
      __pyx_t_5 = 0;
+2755:         extra_allocation += yy.tot_new_alloc
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_extra_allocation, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2755, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_extra_allocation, __pyx_t_7);
      __pyx_t_7 = 0;
+2756:         if yy.allocation_priority == 1:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2756, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2756, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L91;
      }
+2757:           priority_contract += yy.total*yy.reduction[wyt]
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2757, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_reduction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2757, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2757, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2757, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_priority_contract, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2757, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_priority_contract, __pyx_t_1);
        __pyx_t_1 = 0;
+2758:           priority_deliveries += yy.annual_deliveries[wateryear]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_priority_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_priority_deliveries, __pyx_t_1);
        __pyx_t_1 = 0;
 2759:         else:
+2760:           secondary_contract += yy.total*yy.reduction[wyt]
      /*else*/ {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_reduction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_secondary_contract, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2760, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_secondary_contract, __pyx_t_5);
        __pyx_t_5 = 0;
+2761:           secondary_deliveries += yy.annual_deliveries[wateryear]
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2761, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2761, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_secondary_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2761, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_secondary_deliveries, __pyx_t_5);
        __pyx_t_5 = 0;
      }
      __pyx_L91:;
 2762:       #san luis doesn't have available_storage forecasts, so input from northern model is used
 2763: 	  #for state & federal portions
+2764:       if reservoir.key == "SLS":
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2764, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_23, __pyx_n_u_SLS, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2764, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L92;
    }
+2765:         total_allocation = self.swp_allocation[t] - self.pumping_turnback['SLS'] + extra_allocation - self.allocation_losses['SLS']
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swp_allocation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLS); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Add(__pyx_t_23, __pyx_v_extra_allocation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2765, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_23);
      __pyx_t_23 = 0;
+2766:         reservoir.reclaimed_carryover[t] = extra_allocation - self.pumping_turnback['SLS']
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_v_extra_allocation, __pyx_t_5); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_reclaimed_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2766, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_t, __pyx_t_23) < 0)) __PYX_ERR(0, 2766, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2767:         reservoir.contract_flooded[t] = self.allocation_losses['SLS'] * 1.0
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLS); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Multiply(__pyx_t_5, __pyx_float_1_0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_contract_flooded); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2767, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_t, __pyx_t_23) < 0)) __PYX_ERR(0, 2767, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2768:         tot_ind_deliveries = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_float_0_0);
+2769:         tot_ind_carryover = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_tot_ind_carryover, __pyx_float_0_0);
+2770:         tot_ind_turnback = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_tot_ind_turnback, __pyx_float_0_0);
+2771:         tot_ind_paper = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_tot_ind_paper, __pyx_float_0_0);
 2772: 
+2773:         for x in self.district_list:
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2773, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
        __pyx_t_5 = __pyx_t_23; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2773, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_14 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2773, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2773, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2773, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2773, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2773, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          }
        } else {
          __pyx_t_23 = __pyx_t_14(__pyx_t_5);
          if (unlikely(!__pyx_t_23)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2773, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_23);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_23);
        __pyx_t_23 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2774:           tot_ind_carryover +=  x.carryover[y.name]
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2774, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_7);
        __pyx_t_7 = 0;
+2775:           tot_ind_deliveries +=  x.deliveries[y.name][wateryear]
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2775, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_23);
        __pyx_t_23 = 0;
+2776:           tot_ind_turnback +=  x.turnback_pool[y.name]
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2776, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_1);
        __pyx_t_1 = 0;
+2777:           tot_ind_paper +=  x.paper_balance[y.name]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_23); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2777, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_7);
        __pyx_t_7 = 0;
+2778:         for x in self.private_list:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2778, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2778, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2778, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2778, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2778, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2778, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_14(__pyx_t_7);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2778, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2779:           for xx in x.district_list:
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2779, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
          __pyx_t_23 = __pyx_t_5; __Pyx_INCREF(__pyx_t_23); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2779, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_16 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2779, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_23))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2779, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_23, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2779, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2779, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_23, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2779, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            }
          } else {
            __pyx_t_5 = __pyx_t_16(__pyx_t_23);
            if (unlikely(!__pyx_t_5)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2779, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_5);
          __pyx_t_5 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2780:             tot_ind_carryover +=  x.carryover[xx][y.name]
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2780, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2780, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2780, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2780, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2780, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_5);
          __pyx_t_5 = 0;
+2781:             tot_ind_deliveries +=  x.deliveries[xx][y.name][wateryear]
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2781, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_1);
          __pyx_t_1 = 0;
+2782:             tot_ind_turnback +=  x.turnback_pool[xx][y.name]
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2782, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2782, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2782, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2782, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2782, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_1);
          __pyx_t_1 = 0;
+2783:           tot_ind_paper +=  x.paper_balance[xx][y.name]
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (unlikely(!__pyx_v_xx)) { __Pyx_RaiseUnboundLocalError("xx"); __PYX_ERR(0, 2783, __pyx_L1_error) }
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_23); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2783, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_23);
        __pyx_t_23 = 0;
+2784:         for x in self.city_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2784, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_23 = __pyx_t_7; __Pyx_INCREF(__pyx_t_23); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2784, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_14 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2784, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_23))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_23)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2784, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2784, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2784, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2784, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_14(__pyx_t_23);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2784, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2785:           for xx in x.district_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2785, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2785, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2785, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_4))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2785, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2785, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2785, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2785, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_16(__pyx_t_4);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2785, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+2786:             tot_ind_carryover +=  x.carryover[xx][y.name]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2786, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2786, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2786, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2786, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_carryover, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2786, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_carryover, __pyx_t_7);
          __pyx_t_7 = 0;
+2787:             tot_ind_deliveries +=  x.deliveries[xx][y.name][wateryear]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_deliveries, __pyx_t_1);
          __pyx_t_1 = 0;
+2788:             tot_ind_turnback +=  x.turnback_pool[xx][y.name]
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_turnback, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2788, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF_SET(__pyx_v_tot_ind_turnback, __pyx_t_1);
          __pyx_t_1 = 0;
+2789:           tot_ind_paper +=  x.paper_balance[xx][y.name]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (unlikely(!__pyx_v_xx)) { __Pyx_RaiseUnboundLocalError("xx"); __PYX_ERR(0, 2789, __pyx_L1_error) }
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_tot_ind_paper, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2789, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF_SET(__pyx_v_tot_ind_paper, __pyx_t_4);
        __pyx_t_4 = 0;
 2790: 
 2791: 
+2792:       elif reservoir.key == "SLF":
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_23, __pyx_n_u_SLF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2792, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L92;
    }
+2793:         total_allocation = self.cvp_allocation[t] - self.pumping_turnback['SLF'] + extra_allocation - self.allocation_losses['SLF']
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvp_allocation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLF); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_t_4, __pyx_t_5); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_23, __pyx_v_extra_allocation); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLF); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2793, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_23);
      __pyx_t_23 = 0;
+2794:         reservoir.reclaimed_carryover[t] = extra_allocation - self.pumping_turnback['SLF']
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLF); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Subtract(__pyx_v_extra_allocation, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_reclaimed_carryover); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_t, __pyx_t_23) < 0)) __PYX_ERR(0, 2794, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+2795:         reservoir.contract_flooded[t] = self.allocation_losses['SLF'] * 1.0
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2795, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_SLF); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2795, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_Multiply(__pyx_t_4, __pyx_float_1_0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2795, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_contract_flooded); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2795, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_t, __pyx_t_23) < 0)) __PYX_ERR(0, 2795, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 2796: 
+2797:       elif reservoir.key == 'MIL':
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_23, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2797, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L92;
    }
+2798:         if m > 9 or m < 3:
      __pyx_t_23 = PyObject_RichCompare(__pyx_v_m, __pyx_int_9, Py_GT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2798, __pyx_L1_error)
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2798, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L104_bool_binop_done;
      }
      __pyx_t_23 = PyObject_RichCompare(__pyx_v_m, __pyx_int_3, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2798, __pyx_L1_error)
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2798, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_3 = __pyx_t_11;
      __pyx_L104_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L103;
      }
+2799:           total_allocation = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_float_0_0);
 2800:         else:
+2801:           if y.allocation_priority == 1:
      /*else*/ {
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_23, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2801, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2801, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (__pyx_t_3) {
/* … */
          goto __pyx_L106;
        }
+2802:             total_allocation = reservoir.available_storage[t] + y.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Add(__pyx_t_23, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_19 = 0.0;
          __Pyx_INCREF(__pyx_v_total_res_carryover);
          __pyx_t_5 = __pyx_v_total_res_carryover;
          __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_3) {
            __pyx_t_7 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2802, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_23 = __pyx_t_7;
            __pyx_t_7 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_5);
            __pyx_t_23 = __pyx_t_5;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_Subtract(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_5);
          __pyx_t_5 = 0;
 2803:           else:
+2804:             total_allocation = reservoir.available_storage[t] + priority_deliveries + y.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
        /*else*/ {
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_Add(__pyx_t_23, __pyx_v_priority_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_23 = PyNumber_Add(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_19 = 0.0;
          __Pyx_INCREF(__pyx_v_total_res_carryover);
          __pyx_t_4 = __pyx_v_total_res_carryover;
          __pyx_t_7 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_3) {
            __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2804, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_5 = __pyx_t_1;
            __pyx_t_1 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_4);
            __pyx_t_5 = __pyx_t_4;
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = PyNumber_Subtract(__pyx_t_23, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2804, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_4);
          __pyx_t_4 = 0;
        }
        __pyx_L106:;
      }
      __pyx_L103:;
 2805: 
 2806:       else:
 2807:         #otherwise, total allocation at the reservoir is equal to available storage + deliveries - the total carryover storage
+2808:         if y.allocation_priority == 1:
    /*else*/ {
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2808, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2808, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2808, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L107;
      }
+2809:           total_allocation = reservoir.available_storage[t] + y.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_19 = 0.0;
        __Pyx_INCREF(__pyx_v_total_res_carryover);
        __pyx_t_23 = __pyx_v_total_res_carryover;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_23, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_3) {
          __pyx_t_7 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2809, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_4 = __pyx_t_7;
          __pyx_t_7 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_23);
          __pyx_t_4 = __pyx_t_23;
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = PyNumber_Subtract(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2809, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_23);
        __pyx_t_23 = 0;
 2810:         else:
+2811:           total_allocation = reservoir.available_storage[t] + priority_deliveries + y.annual_deliveries[wateryear] - max(total_res_carryover, 0.0)
      /*else*/ {
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_available_storage); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = PyNumber_Add(__pyx_t_4, __pyx_v_priority_deliveries); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_Add(__pyx_t_23, __pyx_t_5); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_19 = 0.0;
        __Pyx_INCREF(__pyx_v_total_res_carryover);
        __pyx_t_5 = __pyx_v_total_res_carryover;
        __pyx_t_7 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_3) {
          __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2811, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_23 = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_5);
          __pyx_t_23 = __pyx_t_5;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Subtract(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_XDECREF_SET(__pyx_v_total_allocation, __pyx_t_5);
        __pyx_t_5 = 0;
      }
      __pyx_L107:;
    }
    __pyx_L92:;
 2812: 
+2813:       y.calc_allocation(t, dowy, total_allocation, priority_contract, secondary_contract, wyt)
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_calc_allocation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2813, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_23);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_23, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_total_allocation, __pyx_v_priority_contract, __pyx_v_secondary_contract, __pyx_v_wyt};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2813, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_total_allocation, __pyx_v_priority_contract, __pyx_v_secondary_contract, __pyx_v_wyt};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2813, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_1 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_total_allocation);
      __Pyx_GIVEREF(__pyx_v_total_allocation);
      PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_v_total_allocation);
      __Pyx_INCREF(__pyx_v_priority_contract);
      __Pyx_GIVEREF(__pyx_v_priority_contract);
      PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_6, __pyx_v_priority_contract);
      __Pyx_INCREF(__pyx_v_secondary_contract);
      __Pyx_GIVEREF(__pyx_v_secondary_contract);
      PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_6, __pyx_v_secondary_contract);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2813, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2814:     ##Find contract 'storage pools' - how much water is available right now	
 2815: 	##san luis federal storage is divided between 3 water contracts - cvpdelta, exchange, and crossvalley
 2816: 	##millerton storage is divided between 2 water contracts - friant1 and friant2
+2817:     for y in self.contract_list:
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2817, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_5 = __pyx_t_22; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2817, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2817, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2817, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2817, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2817, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_5);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2817, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 2818:       #for a specific contract, look up the reservoir it is stored in
+2819:       reservoir = self.contract_reservoir[y.key]
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_23); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_1);
    __pyx_t_1 = 0;
 2820:       #then find all the contracts associated with that reservoir
+2821:       this_reservoir_all_contract = self.reservoir_contract[reservoir.key]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_this_reservoir_all_contract, __pyx_t_22);
    __pyx_t_22 = 0;
+2822:       tot_res_deliveries = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_tot_res_deliveries, __pyx_float_0_0);
+2823:       priority_storage = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_priority_storage, __pyx_float_0_0);
+2824:       tot_res_carryover = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_tot_res_carryover, __pyx_float_0_0);
+2825:       for yy in this_reservoir_all_contract:
    if (likely(PyList_CheckExact(__pyx_v_this_reservoir_all_contract)) || PyTuple_CheckExact(__pyx_v_this_reservoir_all_contract)) {
      __pyx_t_22 = __pyx_v_this_reservoir_all_contract; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_v_this_reservoir_all_contract); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2825, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2825, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2825, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2825, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2825, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2825, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        }
      } else {
        __pyx_t_23 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_23)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2825, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_23);
      }
      __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_23);
      __pyx_t_23 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 2826:         #if some contracts at a reservoir have 'priority' over storage space
 2827: 		#(i.e., cvpdelta and exchange contracts have priority over the federal
 2828: 		#san luis storage), calculate the total allocation volume that has priority
 2829: 		#in a reservoir
+2830:         tot_res_deliveries += yy.annual_deliveries[wateryear]
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_tot_res_deliveries, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2830, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_res_deliveries, __pyx_t_23);
      __pyx_t_23 = 0;
+2831:         tot_res_carryover += yy.tot_carryover
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_tot_res_carryover, __pyx_t_23); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2831, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_res_carryover, __pyx_t_1);
      __pyx_t_1 = 0;
+2832:         if yy.storage_priority == 1:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_storage_priority); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2832, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2832, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2832, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      if (__pyx_t_3) {
/* … */
      }
+2833:           priority_storage += yy.allocation[t]
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_allocation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_priority_storage, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2833, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_priority_storage, __pyx_t_23);
        __pyx_t_23 = 0;
 2834:       ##contract storage pools are the existing storage plus all the deliveries
 2835:       ##that have been made so far in that water year - so 'storage pool' is all
 2836:       ##the contract water that has already come into the reservoir, even water
 2837:       ##that has already been delivered	  
+2838:       total_water = reservoir.S[t] - reservoir.dead_pool + tot_res_deliveries - tot_res_carryover
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_dead_pool); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_23, __pyx_t_22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = PyNumber_Add(__pyx_t_1, __pyx_v_tot_res_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Subtract(__pyx_t_22, __pyx_v_tot_res_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2838, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_XDECREF_SET(__pyx_v_total_water, __pyx_t_1);
    __pyx_t_1 = 0;
 2839: #find the storage pool for each contract
+2840:       y.find_storage_pool(t, wateryear, total_water, reservoir.S[t], priority_storage)
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_find_storage_pool); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2840, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __pyx_t_23 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
      __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_22);
      if (likely(__pyx_t_23)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_23);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_22, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[6] = {__pyx_t_23, __pyx_v_t, __pyx_v_wateryear, __pyx_v_total_water, __pyx_t_4, __pyx_v_priority_storage};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2840, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[6] = {__pyx_t_23, __pyx_v_t, __pyx_v_wateryear, __pyx_v_total_water, __pyx_t_4, __pyx_v_priority_storage};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2840, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2840, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_23) {
        __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_23); __pyx_t_23 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_total_water);
      __Pyx_GIVEREF(__pyx_v_total_water);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_total_water);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_4);
      __Pyx_INCREF(__pyx_v_priority_storage);
      __Pyx_GIVEREF(__pyx_v_priority_storage);
      PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_v_priority_storage);
      __pyx_t_4 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2840, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2841: 
 2842: 
 2843: 	##Update District Contracts
 2844:     #self.assign_uncontrolled(t, wateryear)
+2845:     for y in self.contract_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2845, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2845, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2845, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2845, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2845, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2846:       y.projected_carryover = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_projected_carryover, __pyx_float_0_0) < 0) __PYX_ERR(0, 2846, __pyx_L1_error)
+2847:       y.running_carryover = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover, __pyx_float_0_0) < 0) __PYX_ERR(0, 2847, __pyx_L1_error)
 2848:     #for each contract in each district, what is the district's share of (i) currently available (surface water) storage and (ii) expected remaining allocation
+2849:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2849, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2849, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2849, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2849, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2849, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2849, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+2850:       for y in self.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2850, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_22 = __pyx_t_1; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2850, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2850, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2850, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2850, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2850, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+2851:         next_year_carryover, this_year_carryover = x.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_18 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[9] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_t_23, __pyx_t_2, __pyx_t_25, __pyx_t_4, __pyx_t_17, __pyx_t_21};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[9] = {__pyx_t_18, __pyx_v_t, __pyx_v_wateryear, __pyx_t_23, __pyx_t_2, __pyx_t_25, __pyx_t_4, __pyx_t_17, __pyx_t_21};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      } else
      #endif
      {
        __pyx_t_26 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        if (__pyx_t_18) {
          __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_18); __pyx_t_18 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_6, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_6, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_6, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_17);
        PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_6, __pyx_t_17);
        __Pyx_GIVEREF(__pyx_t_21);
        PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_6, __pyx_t_21);
        __pyx_t_23 = 0;
        __pyx_t_2 = 0;
        __pyx_t_25 = 0;
        __pyx_t_4 = 0;
        __pyx_t_17 = 0;
        __pyx_t_21 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_26, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
        PyObject* sequence = __pyx_t_1;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2851, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_26 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_26);
        #else
        __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_26 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_21 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2851, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_21)->tp_iternext;
        index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_21); if (unlikely(!__pyx_t_7)) goto __pyx_L119_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_7);
        index = 1; __pyx_t_26 = __pyx_t_10(__pyx_t_21); if (unlikely(!__pyx_t_26)) goto __pyx_L119_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_26);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_21), 2) < 0) __PYX_ERR(0, 2851, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        goto __pyx_L120_unpacking_done;
        __pyx_L119_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2851, __pyx_L1_error)
        __pyx_L120_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_7);
      __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_26);
      __pyx_t_26 = 0;
+2852:         y.projected_carryover += next_year_carryover
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_projected_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_v_next_year_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2852, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_projected_carryover, __pyx_t_26) < 0) __PYX_ERR(0, 2852, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2853:         y.running_carryover += this_year_carryover
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover, __pyx_t_1) < 0) __PYX_ERR(0, 2853, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2854: 
+2855:     for x in self.private_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2855, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_22 = __pyx_t_5; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2855, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2855, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2855, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2855, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2855, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+2856:       for y in self.contract_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2856, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2856, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2856, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2856, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2856, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2856, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_14(__pyx_t_1);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2856, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2857:         for z in x.district_list:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_26 = __pyx_t_5; __Pyx_INCREF(__pyx_t_26); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2857, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_16 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2857, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_26))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_26)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2857, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2857, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2857, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2857, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_16(__pyx_t_26);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2857, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2858:           # district_object = self.district_keys[z]
+2859:           next_year_carryover, this_year_carryover = x.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type, z, self.district_keys[z].project_contract, self.district_keys[z].rights)
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_t); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_z); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_v_z); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_rights); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2859, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_8)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_8);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[12] = {__pyx_t_8, __pyx_v_t, __pyx_v_wateryear, __pyx_t_17, __pyx_t_4, __pyx_t_25, __pyx_t_21, __pyx_t_2, __pyx_t_23, __pyx_v_z, __pyx_t_18, __pyx_t_24};
          __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[12] = {__pyx_t_8, __pyx_v_t, __pyx_v_wateryear, __pyx_t_17, __pyx_t_4, __pyx_t_25, __pyx_t_21, __pyx_t_2, __pyx_t_23, __pyx_v_z, __pyx_t_18, __pyx_t_24};
          __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        } else
        #endif
        {
          __pyx_t_27 = PyTuple_New(11+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          if (__pyx_t_8) {
            __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_8); __pyx_t_8 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_t_17);
          PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_6, __pyx_t_17);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_27, 3+__pyx_t_6, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_27, 4+__pyx_t_6, __pyx_t_25);
          __Pyx_GIVEREF(__pyx_t_21);
          PyTuple_SET_ITEM(__pyx_t_27, 5+__pyx_t_6, __pyx_t_21);
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_27, 6+__pyx_t_6, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_27, 7+__pyx_t_6, __pyx_t_23);
          __Pyx_INCREF(__pyx_v_z);
          __Pyx_GIVEREF(__pyx_v_z);
          PyTuple_SET_ITEM(__pyx_t_27, 8+__pyx_t_6, __pyx_v_z);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_27, 9+__pyx_t_6, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_24);
          PyTuple_SET_ITEM(__pyx_t_27, 10+__pyx_t_6, __pyx_t_24);
          __pyx_t_17 = 0;
          __pyx_t_4 = 0;
          __pyx_t_25 = 0;
          __pyx_t_21 = 0;
          __pyx_t_2 = 0;
          __pyx_t_23 = 0;
          __pyx_t_18 = 0;
          __pyx_t_24 = 0;
          __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_27, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
          PyObject* sequence = __pyx_t_5;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 2859, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_27 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_27 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_27);
          #else
          __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_27 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_24 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2859, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_24)->tp_iternext;
          index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_24); if (unlikely(!__pyx_t_7)) goto __pyx_L127_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_7);
          index = 1; __pyx_t_27 = __pyx_t_10(__pyx_t_24); if (unlikely(!__pyx_t_27)) goto __pyx_L127_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_27);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_24), 2) < 0) __PYX_ERR(0, 2859, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          goto __pyx_L128_unpacking_done;
          __pyx_L127_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 2859, __pyx_L1_error)
          __pyx_L128_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_7);
        __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_27);
        __pyx_t_27 = 0;
+2860:           y.running_carryover += this_year_carryover
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover, __pyx_t_27) < 0) __PYX_ERR(0, 2860, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 2861:         #next_year_carryover = x.apply_paper_balance(y.name, wyt, wateryear)
 2862:         #y.projected_carryover += next_year_carryover
 2863: 
 2864: 
+2865:     for x in self.city_list:
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_1 = __pyx_t_22; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2865, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2865, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2865, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2865, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2865, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2865, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2865, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2866:       for y in self.contract_list:
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2866, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
      __pyx_t_26 = __pyx_t_22; __Pyx_INCREF(__pyx_t_26); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_14 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2866, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_26))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2866, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2866, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2866, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2866, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        }
      } else {
        __pyx_t_22 = __pyx_t_14(__pyx_t_26);
        if (unlikely(!__pyx_t_22)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2866, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_22);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2867:         for z in x.district_list:
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
        __pyx_t_27 = __pyx_t_22; __Pyx_INCREF(__pyx_t_27); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2867, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_16 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 2867, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_27))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2867, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2867, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2867, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2867, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          }
        } else {
          __pyx_t_22 = __pyx_t_16(__pyx_t_27);
          if (unlikely(!__pyx_t_22)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 2867, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_22);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_22);
        __pyx_t_22 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 2868:           # district_object = self.district_keys[z]
+2869:           next_year_carryover, this_year_carryover = x.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type, z, self.district_keys[z].project_contract, self.district_keys[z].rights)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_z); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_z); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_rights); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2869, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __pyx_t_17 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_17)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_17);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[12] = {__pyx_t_17, __pyx_v_t, __pyx_v_wateryear, __pyx_t_24, __pyx_t_18, __pyx_t_23, __pyx_t_7, __pyx_t_2, __pyx_t_21, __pyx_v_z, __pyx_t_25, __pyx_t_4};
          __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[12] = {__pyx_t_17, __pyx_v_t, __pyx_v_wateryear, __pyx_t_24, __pyx_t_18, __pyx_t_23, __pyx_t_7, __pyx_t_2, __pyx_t_21, __pyx_v_z, __pyx_t_25, __pyx_t_4};
          __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 11+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        } else
        #endif
        {
          __pyx_t_8 = PyTuple_New(11+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (__pyx_t_17) {
            __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_17); __pyx_t_17 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_t_24);
          PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_t_24);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_6, __pyx_t_23);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_6, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_2);
          PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_6, __pyx_t_2);
          __Pyx_GIVEREF(__pyx_t_21);
          PyTuple_SET_ITEM(__pyx_t_8, 7+__pyx_t_6, __pyx_t_21);
          __Pyx_INCREF(__pyx_v_z);
          __Pyx_GIVEREF(__pyx_v_z);
          PyTuple_SET_ITEM(__pyx_t_8, 8+__pyx_t_6, __pyx_v_z);
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_8, 9+__pyx_t_6, __pyx_t_25);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_8, 10+__pyx_t_6, __pyx_t_4);
          __pyx_t_24 = 0;
          __pyx_t_18 = 0;
          __pyx_t_23 = 0;
          __pyx_t_7 = 0;
          __pyx_t_2 = 0;
          __pyx_t_21 = 0;
          __pyx_t_25 = 0;
          __pyx_t_4 = 0;
          __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_8, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
          PyObject* sequence = __pyx_t_22;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 2869, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_5 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_8 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_5 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_8 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_8);
          #else
          __pyx_t_5 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_8 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_4 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2869, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext;
          index = 0; __pyx_t_5 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L135_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_5);
          index = 1; __pyx_t_8 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_8)) goto __pyx_L135_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_8);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_4), 2) < 0) __PYX_ERR(0, 2869, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          goto __pyx_L136_unpacking_done;
          __pyx_L135_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 2869, __pyx_L1_error)
          __pyx_L136_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_5);
        __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_8);
        __pyx_t_8 = 0;
+2870:           y.running_carryover += this_year_carryover
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2870, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_v_this_year_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2870, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover, __pyx_t_8) < 0) __PYX_ERR(0, 2870, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 2871:         #next_year_carryover = x.apply_paper_balance_urban(y.name, wyt, wateryear)
 2872:         #y.projected_carryover += next_year_carryover
 2873: 
 2874: 
 2875: 
 2876:       ##summation of all projected contracts for each water district (total surface water expected)
+2877:     counter = 0
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_counter = __pyx_int_0;
 2878: 	#find the 'in leiu' recovery capacity at each in-leiu recharge district using this day's irrigation demand
 2879: 	#recovery is based on the surface water allocations for the in-leiu bank (i.e., the surface water that they give their banking partners
 2880: 	#when the partners want to recover banked water
+2881:     self.update_leiu_capacity()
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_leiu_capacity); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_26);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_26, function);
    }
  }
  __pyx_t_1 = (__pyx_t_27) ? __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_27) : __Pyx_PyObject_CallNoArg(__pyx_t_26);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2881, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2882: 
+2883:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2883, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_26 = __pyx_t_1; __Pyx_INCREF(__pyx_t_26); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2883, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_12 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2883, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_26))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2883, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2883, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2883, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_26);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2883, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2884:       #district can request recovery of their banked water
+2885:       if x.key == 'SOB':
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2885, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2885, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L139;
    }
+2886:         target_eoy = 50.0
      __pyx_v_target_eoy = 50.0;
 2887:       else:
+2888:         target_eoy = 0.0
    /*else*/ {
      __pyx_v_target_eoy = 0.0;
    }
    __pyx_L139:;
+2889:       x.open_recovery(t, dowy, wateryear, target_eoy)
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_8 = PyFloat_FromDouble(__pyx_v_target_eoy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2889, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_22 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_22)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2889, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_8};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2889, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_22) {
        __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_22); __pyx_t_22 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_6, __pyx_t_8);
      __pyx_t_8 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2889, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2890: 	  ##Recover Banked Water
+2891:     use_tolerance = 0
  __pyx_v_use_tolerance = 0;
+2892:     for x in self.private_list:
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2892, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
    __pyx_t_1 = __pyx_t_26; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2892, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2892, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2892, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2892, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2892, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2892, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      }
    } else {
      __pyx_t_26 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_26)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2892, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_26);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_26);
    __pyx_t_26 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2893:       x.open_recovery(t, dowy, wateryear, self.number_years, wyt, use_tolerance, 0.0)
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2893, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2893, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_8 = __Pyx_PyInt_From_long(__pyx_v_use_tolerance); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2893, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_22 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_22)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_5, __pyx_v_wyt, __pyx_t_8, __pyx_float_0_0};
      __pyx_t_26 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2893, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_5, __pyx_v_wyt, __pyx_t_8, __pyx_float_0_0};
      __pyx_t_26 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2893, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2893, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_22) {
        __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_22); __pyx_t_22 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_t_5);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_6, __pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_6, __pyx_t_8);
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_GIVEREF(__pyx_float_0_0);
      PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_6, __pyx_float_0_0);
      __pyx_t_5 = 0;
      __pyx_t_8 = 0;
      __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_4, NULL); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2893, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2894:     use_tolerance = 0
  __pyx_v_use_tolerance = 0;
+2895:     for x in self.city_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2895, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_26 = __pyx_t_1; __Pyx_INCREF(__pyx_t_26); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2895, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_12 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2895, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_26))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2895, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2895, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2895, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2895, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_26);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2895, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2896:       # for xx in x.district_list:
 2897:         # district_object = self.district_keys[xx]
 2898:         # total_contract = self.district_keys[xx].project_contract['tableA']
 2899:       # if dowy > 273:
 2900:       #   #additional_carryover = x.get_urban_recovery_target(expected_pumping, total_contract, wateryear, dowy, year_index, wyt, 90, t, xx)
 2901:       #   additional_carryover = 0.0
 2902:       # else:
 2903:       #   additional_carryover = 0.0
+2904:       additional_carryover = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+2905:       x.open_recovery(t, dowy, wateryear, self.number_years, wyt, use_tolerance, additional_carryover)
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recovery); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyInt_From_long(__pyx_v_use_tolerance); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_4, __pyx_v_wyt, __pyx_t_8, __pyx_v_additional_carryover};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2905, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_4, __pyx_v_wyt, __pyx_t_8, __pyx_v_additional_carryover};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2905, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    } else
    #endif
    {
      __pyx_t_22 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2905, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_6, __pyx_t_4);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_6, __pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_6, __pyx_t_8);
      __Pyx_INCREF(__pyx_v_additional_carryover);
      __Pyx_GIVEREF(__pyx_v_additional_carryover);
      PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_6, __pyx_v_additional_carryover);
      __pyx_t_4 = 0;
      __pyx_t_8 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_22, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2905, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2906:     flow_type = "recovery"
  __Pyx_INCREF(__pyx_n_u_recovery);
  __pyx_v_flow_type = __pyx_n_u_recovery;
 2907:     #initialize the recover variables at the bank
+2908:     for w in self.waterbank_list:
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2908, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
    __pyx_t_1 = __pyx_t_26; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2908, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2908, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2908, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2908, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2908, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      }
    } else {
      __pyx_t_26 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_26)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2908, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_26);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_26);
    __pyx_t_26 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2909:       for xx in w.participant_list:
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
      __pyx_t_27 = __pyx_t_26; __Pyx_INCREF(__pyx_t_27); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2909, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2909, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_27))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2909, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2909, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2909, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2909, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        }
      } else {
        __pyx_t_26 = __pyx_t_14(__pyx_t_27);
        if (unlikely(!__pyx_t_26)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2909, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_26);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_26);
      __pyx_t_26 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2910:         w.recovery_use[xx] = 0.0#how much of the recovery capacity was used by the account holder
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2910, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_v_xx, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2910, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2911:     #same but for 'in leiu' banks
+2912:     for w in self.leiu_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2912, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_27 = __pyx_t_1; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_12 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2912, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_27))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2912, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2912, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2912, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_27);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2912, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2913:       w.tot_leiu_recovery_use = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_tot_leiu_recovery_use, __pyx_float_0_0) < 0) __PYX_ERR(0, 2913, __pyx_L1_error)
+2914:       for xx in w.participant_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2914, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_26 = __pyx_t_1; __Pyx_INCREF(__pyx_t_26); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2914, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_14 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2914, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_26))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2914, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2914, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2914, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2914, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_14(__pyx_t_26);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2914, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2915:         w.recovery_use[xx] = 0.0
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2915, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2915, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2916:         w.bank_deliveries[xx] = 0.0
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_bank_deliveries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2916, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_float_0_0) < 0)) __PYX_ERR(0, 2916, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2917: 
 2918: 	  #recover banked groundwater
 2919:       #only looking at GW exchanges for a few contracts
+2920:     if self.metropolitan.use_recovery > 0.0:
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_use_recovery); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  __pyx_t_27 = PyObject_RichCompare(__pyx_t_26, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2920, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (__pyx_t_3) {
/* … */
  }
+2921:       exchanger_list = [self.kerntulare, self.pixley, self.lowertule]
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerntulare); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pixley); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_lowertule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_22 = PyList_New(3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_GIVEREF(__pyx_t_27);
    PyList_SET_ITEM(__pyx_t_22, 0, __pyx_t_27);
    __Pyx_GIVEREF(__pyx_t_26);
    PyList_SET_ITEM(__pyx_t_22, 1, __pyx_t_26);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_22, 2, __pyx_t_1);
    __pyx_t_27 = 0;
    __pyx_t_26 = 0;
    __pyx_t_1 = 0;
    __pyx_v_exchanger_list = ((PyObject*)__pyx_t_22);
    __pyx_t_22 = 0;
+2922:       exchange_max = min(self.arvin.inleiubanked['MET'], self.metropolitan.dailydemand_start['SOC']*self.metropolitan.use_recovery)
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_dailydemand_start); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_SOC); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_use_recovery); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_22, __pyx_t_26); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_arvin); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_MET); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_27 = PyObject_RichCompare(__pyx_t_1, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2922, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_22 = __pyx_t_1;
    } else {
      __Pyx_INCREF(__pyx_t_26);
      __pyx_t_22 = __pyx_t_26;
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_t_22;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_v_exchange_max = __pyx_t_1;
    __pyx_t_1 = 0;
+2923:       exchange_request = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_exchange_request = __pyx_float_0_0;
+2924:       for exc_cvc in exchanger_list:
    __pyx_t_1 = __pyx_v_exchanger_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    for (;;) {
      if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_22 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2924, __pyx_L1_error)
      #else
      __pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2924, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_exc_cvc, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2925:         exchange_request += max(exc_cvc.projected_supply['cvc'], 0.0)
      __pyx_t_19 = 0.0;
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_exc_cvc, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_cvc); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_27 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_27, __pyx_t_26, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_3) {
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2925, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_22 = __pyx_t_8;
        __pyx_t_8 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_26);
        __pyx_t_22 = __pyx_t_26;
      }
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_v_exchange_request, __pyx_t_22); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2925, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_DECREF_SET(__pyx_v_exchange_request, __pyx_t_26);
      __pyx_t_26 = 0;
+2926:       if exchange_request > 0.0:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_exchange_request, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2926, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2926, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {
/* … */
    }
+2927:         delivered_exchange = min(exchange_max, exchange_request)
      __Pyx_INCREF(__pyx_v_exchange_request);
      __pyx_t_1 = __pyx_v_exchange_request;
      __Pyx_INCREF(__pyx_v_exchange_max);
      __pyx_t_26 = __pyx_v_exchange_max;
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_1, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2927, __pyx_L1_error)
      __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2927, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_3) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_22 = __pyx_t_1;
      } else {
        __Pyx_INCREF(__pyx_t_26);
        __pyx_t_22 = __pyx_t_26;
      }
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __pyx_t_22;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_v_delivered_exchange = __pyx_t_1;
      __pyx_t_1 = 0;
+2928:         self.arvin.inleiubanked['MET'] -= delivered_exchange
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_arvin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2928, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2928, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_INCREF(__pyx_n_u_MET);
      __pyx_t_28 = __pyx_n_u_MET;
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2928, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_26 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_v_delivered_exchange); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2928, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_26) < 0)) __PYX_ERR(0, 2928, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+2929:         self.metropolitan.paper_balance['SOC']['cvc'] += delivered_exchange
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_n_u_SOC); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_INCREF(__pyx_n_u_cvc);
      __pyx_t_28 = __pyx_n_u_cvc;
      __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_t_28); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_delivered_exchange); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 2929, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 2930: 
+2931:         for exc_cvc in exchanger_list:
      __pyx_t_22 = __pyx_v_exchanger_list; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
      for (;;) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2931, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2931, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_exc_cvc, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+2932:           ind_exchange = delivered_exchange * max(exc_cvc.projected_supply['cvc'], 0.0)/exchange_request
        __pyx_t_19 = 0.0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exc_cvc, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_cvc); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_27 = PyObject_RichCompare(__pyx_t_8, __pyx_t_26, Py_GT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        if (__pyx_t_3) {
          __pyx_t_27 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2932, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_1 = __pyx_t_27;
          __pyx_t_27 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_26);
          __pyx_t_1 = __pyx_t_26;
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = PyNumber_Multiply(__pyx_v_delivered_exchange, __pyx_t_1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_26, __pyx_v_exchange_request); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2932, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_XDECREF_SET(__pyx_v_ind_exchange, __pyx_t_1);
        __pyx_t_1 = 0;
+2933:           self.arvin.inleiubanked[exc_cvc.key] += ind_exchange
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_arvin); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_exc_cvc, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_27, __pyx_v_ind_exchange); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_1, __pyx_t_8) < 0)) __PYX_ERR(0, 2933, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2934:           exc_cvc.paper_balance['cvc'] -= ind_exchange
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_exc_cvc, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_INCREF(__pyx_n_u_cvc);
        __pyx_t_28 = __pyx_n_u_cvc;
        __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_v_ind_exchange); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2934, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_28, __pyx_t_8) < 0)) __PYX_ERR(0, 2934, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2935: 
+2936:     self.canal_contract['caa'] = [self.swpdelta]#only want to 'paper' exchange swp contracts
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_26 = PyList_New(1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_26, 0, __pyx_t_22);
  __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2936, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_n_u_caa, __pyx_t_26) < 0)) __PYX_ERR(0, 2936, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2937:     for z in [self.calaqueduct, self.fkc, self.kernriverchannel]:
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2937, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_26);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_26);
  __Pyx_GIVEREF(__pyx_t_22);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_8);
  __pyx_t_26 = 0;
  __pyx_t_22 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (__pyx_t_9 >= 3) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2937, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2938:       for reservoir_recovery in self.canal_reservoir[z.name]:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_reservoir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_22); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2938, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
      __pyx_t_22 = __pyx_t_26; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2938, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2938, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2938, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2938, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2938, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2938, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        }
      } else {
        __pyx_t_26 = __pyx_t_12(__pyx_t_22);
        if (unlikely(!__pyx_t_26)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2938, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_26);
      }
      __Pyx_XDECREF_SET(__pyx_v_reservoir_recovery, __pyx_t_26);
      __pyx_t_26 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+2939:         if reservoir_recovery.min_daily_uncontrolled < reservoir_recovery.flood_flow_min or reservoir_recovery.fcr > 0.0:
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir_recovery, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir_recovery, __pyx_n_s_flood_flow_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_27 = PyObject_RichCompare(__pyx_t_26, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L163_bool_binop_done;
      }
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir_recovery, __pyx_n_s_fcr); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_27, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 2939, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = __pyx_t_11;
      __pyx_L163_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
      }
+2940:           for y in self.canal_contract[z.name]:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2940, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2940, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2940, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
          __pyx_t_27 = __pyx_t_26; __Pyx_INCREF(__pyx_t_27); __pyx_t_15 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2940, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2940, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_27))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_27)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_26 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2940, __pyx_L1_error)
              #else
              __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2940, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_26);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 2940, __pyx_L1_error)
              #else
              __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2940, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_26);
              #endif
            }
          } else {
            __pyx_t_26 = __pyx_t_14(__pyx_t_27);
            if (unlikely(!__pyx_t_26)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 2940, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_26);
          }
          __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_26);
          __pyx_t_26 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2941:             exchange_contract = y.name
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2941, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_XDECREF_SET(__pyx_v_exchange_contract, __pyx_t_26);
          __pyx_t_26 = 0;
+2942:             delivery_key = exchange_contract + "_banked"
          __pyx_t_26 = PyNumber_Add(__pyx_v_exchange_contract, __pyx_n_u_banked_2); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2942, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_XDECREF_SET(__pyx_v_delivery_key, __pyx_t_26);
          __pyx_t_26 = 0;
+2943:             self.set_canal_direction(flow_type)
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2943, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = NULL;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
            }
          }
          __pyx_t_26 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_4, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2943, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2944:             canal_size = self.canal_district_len[z.name]
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2944, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2944, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2944, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_4);
          __pyx_t_4 = 0;
+2945:             total_canal_demand = self.search_canal_demand(dowy,z, "none", z.name, 'normal', flow_type, wateryear, 'recovery', {})
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2945, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2945, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2945, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_25 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
            __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_1);
            if (likely(__pyx_t_25)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
              __Pyx_INCREF(__pyx_t_25);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_1, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_dowy, __pyx_v_z, __pyx_n_u_none, __pyx_t_26, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_recovery, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2945, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
            PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_dowy, __pyx_v_z, __pyx_n_u_none, __pyx_t_26, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_recovery, __pyx_t_5};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2945, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_21 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2945, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_21);
            if (__pyx_t_25) {
              __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_25); __pyx_t_25 = NULL;
            }
            __Pyx_INCREF(__pyx_v_dowy);
            __Pyx_GIVEREF(__pyx_v_dowy);
            PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_6, __pyx_v_dowy);
            __Pyx_INCREF(__pyx_v_z);
            __Pyx_GIVEREF(__pyx_v_z);
            PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_6, __pyx_v_z);
            __Pyx_INCREF(__pyx_n_u_none);
            __Pyx_GIVEREF(__pyx_n_u_none);
            PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_6, __pyx_n_u_none);
            __Pyx_GIVEREF(__pyx_t_26);
            PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_6, __pyx_t_26);
            __Pyx_INCREF(__pyx_n_u_normal);
            __Pyx_GIVEREF(__pyx_n_u_normal);
            PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_6, __pyx_n_u_normal);
            __Pyx_INCREF(__pyx_v_flow_type);
            __Pyx_GIVEREF(__pyx_v_flow_type);
            PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_6, __pyx_v_flow_type);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_INCREF(__pyx_n_u_recovery);
            __Pyx_GIVEREF(__pyx_n_u_recovery);
            PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_6, __pyx_n_u_recovery);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_21, 8+__pyx_t_6, __pyx_t_5);
            __pyx_t_26 = 0;
            __pyx_t_5 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_21, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2945, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_4);
          __pyx_t_4 = 0;
+2946:         self.set_canal_direction(flow_type)
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2946, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
        }
      }
      __pyx_t_27 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_flow_type);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2946, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2947:     self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]#reset california aqueduct contracts to be all san luis contracts
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_27);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_t_4);
  __pyx_t_8 = 0;
  __pyx_t_22 = 0;
  __pyx_t_27 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_n_u_caa, __pyx_t_1) < 0)) __PYX_ERR(0, 2947, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 2948: 
 2949:     #if self.xvc.locked == 1 and self.calaqueduct.flow_directions['recharge']['xvc'] == 'reverse':
+2950:     total_current_balance = max(self.buenavista.current_balance['kern'], 0.0)
  __pyx_t_19 = 0.0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_current_balance); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_kern); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_27 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_22 = PyObject_RichCompare(__pyx_t_27, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2950, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (__pyx_t_3) {
    __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_4 = __pyx_t_22;
    __pyx_t_22 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_total_current_balance = __pyx_t_1;
  __pyx_t_1 = 0;
+2951:     total_projected_supply = max(self.buenavista.projected_supply['kern'], 0.0)
  __pyx_t_19 = 0.0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_kern); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_27 = PyObject_RichCompare(__pyx_t_22, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2951, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (__pyx_t_3) {
    __pyx_t_27 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_4 = __pyx_t_27;
    __pyx_t_27 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_total_projected_supply = __pyx_t_1;
  __pyx_t_1 = 0;
 2952:       #conservative_estimate = max(min((dowy- 211.0)/(273.0 - 211.0), 1.0), 0.0)
+2953:     conservative_estimate = 1.0
  __pyx_v_conservative_estimate = 1.0;
+2954:     available_exchange_kern = max(min(conservative_estimate*total_projected_supply,total_current_balance), 0.0)
  __pyx_t_19 = 0.0;
  __Pyx_INCREF(__pyx_v_total_current_balance);
  __pyx_t_1 = __pyx_v_total_current_balance;
  __pyx_t_4 = PyFloat_FromDouble(__pyx_v_conservative_estimate); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_27 = PyNumber_Multiply(__pyx_t_4, __pyx_v_total_projected_supply); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_22 = PyObject_RichCompare(__pyx_t_1, __pyx_t_27, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (__pyx_t_3) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_27);
    __pyx_t_4 = __pyx_t_27;
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_t_4);
  __pyx_t_1 = __pyx_t_4;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_27 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_22 = PyObject_RichCompare(__pyx_t_27, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2954, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (__pyx_t_3) {
    __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_4 = __pyx_t_22;
    __pyx_t_22 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_4 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_4;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_available_exchange_kern = __pyx_t_1;
  __pyx_t_1 = 0;
+2955:     requester_list = [self.cawelo, self.ID4, self.rosedale]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cawelo); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ID4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_27 = PyList_New(3); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2955, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_27, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyList_SET_ITEM(__pyx_t_27, 1, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_27, 2, __pyx_t_22);
  __pyx_t_1 = 0;
  __pyx_t_4 = 0;
  __pyx_t_22 = 0;
  __pyx_v_requester_list = ((PyObject*)__pyx_t_27);
  __pyx_t_27 = 0;
+2956:     total_request = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_total_request = __pyx_float_0_0;
+2957:     for requester in requester_list:
  __pyx_t_27 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_22 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2957, __pyx_L1_error)
    #else
    __pyx_t_22 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_requester, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2958:       total_request += max(min(requester.dailydemand_start[0] + requester.recharge_carryover[y.name], requester.dailydemand[0] + requester.recharge_carryover[y.name], requester.current_balance['tableA'], requester.projected_supply['tableA']),0.0)
    __pyx_t_19 = 0.0;
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_22, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_recharge_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_4, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_current_balance); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_tableA); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_tableA); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_dailydemand_start); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_recharge_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Add(__pyx_t_21, __pyx_t_26); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_21 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_26 = __pyx_t_1;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_26 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_t_26);
    __pyx_t_5 = __pyx_t_26;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_21 = PyObject_RichCompare(__pyx_t_4, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_4);
      __pyx_t_26 = __pyx_t_4;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_26 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_INCREF(__pyx_t_26);
    __pyx_t_5 = __pyx_t_26;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_21 = PyObject_RichCompare(__pyx_t_22, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_21); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_21); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_22);
      __pyx_t_26 = __pyx_t_22;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_26 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_INCREF(__pyx_t_26);
    __pyx_t_1 = __pyx_t_26;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_4 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_22 = PyObject_RichCompare(__pyx_t_4, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (__pyx_t_3) {
      __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2958, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_26 = __pyx_t_22;
      __pyx_t_22 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_26 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_total_request, __pyx_t_26); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF_SET(__pyx_v_total_request, __pyx_t_1);
    __pyx_t_1 = 0;
+2959:     if available_exchange_kern > 0.0:
  __pyx_t_27 = PyObject_RichCompare(__pyx_v_available_exchange_kern, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2959, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L169;
  }
+2960:       request_fraction = min(available_exchange_kern/total_request, 1.0)
    __pyx_t_19 = 1.0;
    __pyx_t_27 = __Pyx_PyNumber_Divide(__pyx_v_available_exchange_kern, __pyx_v_total_request); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_26 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_22 = PyObject_RichCompare(__pyx_t_26, __pyx_t_27, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2960, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2960, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (__pyx_t_3) {
      __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2960, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_1 = __pyx_t_22;
      __pyx_t_22 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_27);
      __pyx_t_1 = __pyx_t_27;
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __pyx_t_27 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_request_fraction = __pyx_t_27;
    __pyx_t_27 = 0;
 2961:     else:
+2962:       request_fraction = 0.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_request_fraction = __pyx_float_0_0;
  }
  __pyx_L169:;
+2963:     for requester in requester_list:
  __pyx_t_27 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_1 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2963, __pyx_L1_error)
    #else
    __pyx_t_1 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2963, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_requester, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+2964:       exchanged_value = request_fraction * max(min(requester.dailydemand_start[0] + requester.recharge_carryover[y.name], requester.dailydemand[0] + requester.recharge_carryover[y.name], requester.current_balance['tableA'], requester.projected_supply['tableA']),0.0)
    __pyx_t_19 = 0.0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_22 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_recharge_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_26); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = PyNumber_Add(__pyx_t_22, __pyx_t_4); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_current_balance); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_tableA); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_tableA); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_dailydemand_start); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_recharge_carryover); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_21); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __pyx_t_21 = PyNumber_Add(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_26, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_26);
      __pyx_t_8 = __pyx_t_26;
    } else {
      __Pyx_INCREF(__pyx_t_21);
      __pyx_t_8 = __pyx_t_21;
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_21 = __pyx_t_8;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_22, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_22);
      __pyx_t_8 = __pyx_t_22;
    } else {
      __Pyx_INCREF(__pyx_t_21);
      __pyx_t_8 = __pyx_t_21;
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_21 = __pyx_t_8;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_21, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_3) {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_8 = __pyx_t_1;
    } else {
      __Pyx_INCREF(__pyx_t_21);
      __pyx_t_8 = __pyx_t_21;
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_INCREF(__pyx_t_8);
    __pyx_t_26 = __pyx_t_8;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_22 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_22, __pyx_t_26, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2964, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __pyx_t_1;
      __pyx_t_1 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_26);
      __pyx_t_8 = __pyx_t_26;
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = PyNumber_Multiply(__pyx_v_request_fraction, __pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2964, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF_SET(__pyx_v_exchanged_value, __pyx_t_26);
    __pyx_t_26 = 0;
+2965:       requester.paper_balance['kern'] += exchanged_value
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_INCREF(__pyx_n_u_kern);
    __pyx_t_28 = __pyx_n_u_kern;
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_t_28); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2965, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 2965, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2966:       requester.paper_balance['tableA'] -= exchanged_value
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_INCREF(__pyx_n_u_tableA);
    __pyx_t_28 = __pyx_n_u_tableA;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_t_28); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_1, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_28, __pyx_t_8) < 0)) __PYX_ERR(0, 2966, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2967:       self.buenavista.paper_balance['kern'] -= exchanged_value
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_INCREF(__pyx_n_u_kern);
    __pyx_t_28 = __pyx_n_u_kern;
    __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_t_28); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_1 = PyNumber_InPlaceSubtract(__pyx_t_26, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2967, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_28, __pyx_t_1) < 0)) __PYX_ERR(0, 2967, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2968:       self.buenavista.paper_balance['tableA'] += exchanged_value
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_INCREF(__pyx_n_u_tableA);
    __pyx_t_28 = __pyx_n_u_tableA;
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_t_28); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_v_exchanged_value); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_28, __pyx_t_26) < 0)) __PYX_ERR(0, 2968, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+2969:       for y in [self.kernriver, self.swpdelta]:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_26);
    PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_26);
    __pyx_t_1 = 0;
    __pyx_t_26 = 0;
    __pyx_t_26 = __pyx_t_8; __Pyx_INCREF(__pyx_t_26); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_13 >= 2) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_8); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2969, __pyx_L1_error)
      #else
      __pyx_t_8 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      #endif
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+2970:         next_year_carryover, this_year_carryover = requester.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2970, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_21, __pyx_t_5, __pyx_t_4, __pyx_t_22, __pyx_t_25, __pyx_t_2};
        __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_21, __pyx_t_5, __pyx_t_4, __pyx_t_22, __pyx_t_25, __pyx_t_2};
        __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_21);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_21);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_22);
        PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_6, __pyx_t_22);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_6, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_6, __pyx_t_2);
        __pyx_t_21 = 0;
        __pyx_t_5 = 0;
        __pyx_t_4 = 0;
        __pyx_t_22 = 0;
        __pyx_t_25 = 0;
        __pyx_t_2 = 0;
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_23, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2970, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_23 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_23 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_23);
        #else
        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_23 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_2 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2970, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext;
        index = 0; __pyx_t_1 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L174_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        index = 1; __pyx_t_23 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_23)) goto __pyx_L174_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_23);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_2), 2) < 0) __PYX_ERR(0, 2970, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L175_unpacking_done;
        __pyx_L174_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2970, __pyx_L1_error)
        __pyx_L175_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_1);
      __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_23);
      __pyx_t_23 = 0;
+2971:         next_year_carryover, this_year_carryover = self.buenavista.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2971, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_21 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_21 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_21)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_21);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_wateryear, __pyx_t_2, __pyx_t_25, __pyx_t_22, __pyx_t_23, __pyx_t_4, __pyx_t_5};
        __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[9] = {__pyx_t_21, __pyx_v_t, __pyx_v_wateryear, __pyx_t_2, __pyx_t_25, __pyx_t_22, __pyx_t_23, __pyx_t_4, __pyx_t_5};
        __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_21); __pyx_t_21 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_21) {
          __Pyx_GIVEREF(__pyx_t_21); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_21); __pyx_t_21 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_22);
        PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_t_22);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_6, __pyx_t_5);
        __pyx_t_2 = 0;
        __pyx_t_25 = 0;
        __pyx_t_22 = 0;
        __pyx_t_23 = 0;
        __pyx_t_4 = 0;
        __pyx_t_5 = 0;
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 2971, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_7);
        #else
        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_5 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2971, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_5)->tp_iternext;
        index = 0; __pyx_t_1 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_1)) goto __pyx_L176_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_7)) goto __pyx_L176_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_5), 2) < 0) __PYX_ERR(0, 2971, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        goto __pyx_L177_unpacking_done;
        __pyx_L176_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 2971, __pyx_L1_error)
        __pyx_L177_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_next_year_carryover, __pyx_t_1);
      __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_this_year_carryover, __pyx_t_7);
      __pyx_t_7 = 0;
 2972: 
 2973: 
+2974:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+2975:     for z in self.reservoir_canal[self.millerton.key]:
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
    __pyx_t_8 = __pyx_t_26; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_12 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 2975, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_8))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2975, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 2975, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      }
    } else {
      __pyx_t_26 = __pyx_t_12(__pyx_t_8);
      if (unlikely(!__pyx_t_26)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 2975, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_26);
    }
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_26);
    __pyx_t_26 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+2976:       self.set_canal_direction(flow_type)
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
      }
    }
    __pyx_t_26 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_27, __pyx_t_7, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_27, __pyx_v_flow_type);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2976, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 2977: 
+2978:       canal_size = self.canal_district_len[z.name]
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_27); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2978, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_7);
    __pyx_t_7 = 0;
+2979:       total_canal_demand = self.search_canal_demand(dowy, z, self.millerton.key, z.name, 'normal', flow_type, wateryear,'delivery', {})
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_26, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_5};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2979, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_27)) {
      PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_26, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_5};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_27, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2979, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_23 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2979, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_z);
      __Pyx_GIVEREF(__pyx_v_z);
      PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_z);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_26);
      PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_26);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_n_u_delivery);
      PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_6, __pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_23, 8+__pyx_t_6, __pyx_t_5);
      __pyx_t_1 = 0;
      __pyx_t_26 = 0;
      __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_27, __pyx_t_23, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2979, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_7);
    __pyx_t_7 = 0;
+2980:       available_flow = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+2981:       for zz in total_canal_demand:
    if (likely(PyList_CheckExact(__pyx_v_total_canal_demand)) || PyTuple_CheckExact(__pyx_v_total_canal_demand)) {
      __pyx_t_7 = __pyx_v_total_canal_demand; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_total_canal_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2981, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 2981, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2981, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2981, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 2981, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2981, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        }
      } else {
        __pyx_t_27 = __pyx_t_14(__pyx_t_7);
        if (unlikely(!__pyx_t_27)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 2981, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_27);
      }
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_27);
      __pyx_t_27 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+2982:         available_flow += total_canal_demand[zz]
      __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2982, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2982, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_23);
      __pyx_t_23 = 0;
+2983:       excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, z, self.millerton.key, z.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_27, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 2983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_26 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
      __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_23);
      if (likely(__pyx_t_26)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
        __Pyx_INCREF(__pyx_t_26);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_23, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[11] = {__pyx_t_26, __pyx_v_dowy, __pyx_v_z, __pyx_t_5, __pyx_t_27, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[11] = {__pyx_t_26, __pyx_v_dowy, __pyx_v_z, __pyx_t_5, __pyx_t_27, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    } else
    #endif
    {
      __pyx_t_1 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__pyx_t_26) {
        __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_26); __pyx_t_26 = NULL;
      }
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_z);
      __Pyx_GIVEREF(__pyx_v_z);
      PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_z);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_27);
      PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_6, __pyx_t_27);
      __Pyx_INCREF(__pyx_v_available_flow);
      __Pyx_GIVEREF(__pyx_v_available_flow);
      PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_6, __pyx_v_available_flow);
      __Pyx_INCREF(__pyx_v_canal_size);
      __Pyx_GIVEREF(__pyx_v_canal_size);
      PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_6, __pyx_v_canal_size);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_6, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_n_u_delivery);
      PyTuple_SET_ITEM(__pyx_t_1, 9+__pyx_t_6, __pyx_n_u_delivery);
      __pyx_t_5 = 0;
      __pyx_t_27 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_1, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
      PyObject* sequence = __pyx_t_7;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 2983, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_23 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_23 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_23);
      __Pyx_INCREF(__pyx_t_1);
      #else
      __pyx_t_23 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_27 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2983, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_27)->tp_iternext;
      index = 0; __pyx_t_23 = __pyx_t_10(__pyx_t_27); if (unlikely(!__pyx_t_23)) goto __pyx_L182_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_23);
      index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_27); if (unlikely(!__pyx_t_1)) goto __pyx_L182_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_27), 2) < 0) __PYX_ERR(0, 2983, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      goto __pyx_L183_unpacking_done;
      __pyx_L182_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 2983, __pyx_L1_error)
      __pyx_L183_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_23);
    __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_1);
    __pyx_t_1 = 0;
 2984: 
 2985:       #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, a.key, z.name, 'normal',flow_type)
 2986:       #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, a.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
+2987:       self.set_canal_direction(flow_type)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_23 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_23)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_23);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_7 = (__pyx_t_23) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_23, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2987, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 2988: 
 2989:     ##Flood Deliveries - 4 flood sources - Millerton, Isabella, Success, and Kaweah
 2990:     ##What is the priority for reservoirs getting to use the canals to route flood releases?
 2991: 	##Note: most of the contracts have provisions that flood flows 'cannot displace' scheduled 
 2992:     ##deliveries (i.e. you can't use flood releases to fill demand that would be met by your contract
 2993: 	##schedule), so might want to put this AFTER regular delivery routing
+2994:     flood_order_list = [self.pineflat, self.success, self.kaweah, self.isabella]
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_27 = PyList_New(4); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_27, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_7);
  PyList_SET_ITEM(__pyx_t_27, 1, __pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_27, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_23);
  PyList_SET_ITEM(__pyx_t_27, 3, __pyx_t_23);
  __pyx_t_8 = 0;
  __pyx_t_7 = 0;
  __pyx_t_1 = 0;
  __pyx_t_23 = 0;
  __pyx_v_flood_order_list = ((PyObject*)__pyx_t_27);
  __pyx_t_27 = 0;
 2995:     #toggle to enable flood releases to go to districts/banks that don't have a contract w/the reservoir
 2996:     #only san luis restricts flood releases to contractors only (b/c otherwise they just dont pump)
+2997:     overflow_deliveries = 1
  __pyx_v_overflow_deliveries = 1;
+2998:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+2999:     self.set_canal_direction(flow_type)
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_23);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_23, function);
    }
  }
  __pyx_t_27 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_23, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 2999, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3000:     for a in flood_order_list:
  __pyx_t_27 = __pyx_v_flood_order_list; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_23 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3000, __pyx_L1_error)
    #else
    __pyx_t_23 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_23);
    __pyx_t_23 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3001:       #if flow is already on a bi-directional canal, it becomes closed to canals going the other direction
 3002: 	  #checks the calaqueduct turnout to xvc is used, if not, xvc is open to fkc and kern river
+3003:       self.set_canal_direction(flow_type)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3003, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_23 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_7, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3003, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3004:       #release flood flows to canals
+3005:       self.flood_operations(t, m, dowy, wateryear, a, flow_type, overflow_deliveries, wyt)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flood_operations); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_overflow_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3005, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_a, __pyx_v_flow_type, __pyx_t_7, __pyx_v_wyt};
      __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3005, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[9] = {__pyx_t_8, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_a, __pyx_v_flow_type, __pyx_t_7, __pyx_v_wyt};
      __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3005, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3005, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_v_a);
      __Pyx_GIVEREF(__pyx_v_a);
      PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_6, __pyx_v_a);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_6, __pyx_t_7);
      __Pyx_INCREF(__pyx_v_wyt);
      __Pyx_GIVEREF(__pyx_v_wyt);
      PyTuple_SET_ITEM(__pyx_t_5, 7+__pyx_t_6, __pyx_v_wyt);
      __pyx_t_7 = 0;
      __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_5, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3005, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3006:       #for canal in self.reservoir_canal[a.key]: 
 3007:         #for cnt in self.canal_contract[canal.name]:
 3008:           #for socal_cont in [self.metropolitan, self.castaic, self.coachella]:
 3009:             #if cnt.name + '_flood' in socal_cont.deliveries['SOC']:
 3010:               #if socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] > 0.0:
 3011:                 #socal_cont.deliveries['SOC']['tableA'][wateryear] += socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
 3012:                 #self.pumping_turnback['SLS'] -= socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
 3013:                 #socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] = 0.0
 3014:           #for socal_cont in [self.socal,]:
 3015:             #if cnt.name + '_flood' in socal_cont.deliveries:
 3016:               #if socal_cont.deliveries[cnt.name + '_flood'][wateryear] > 0.0:
 3017:                 #socal_cont.deliveries['tableA'][wateryear] += socal_cont.deliveries[cnt.name + '_flood'][wateryear]
 3018:                 #self.pumping_turnback['SLS'] -= socal_cont.deliveries[cnt.name + '_flood'][wateryear]
 3019:                 #socal_cont.deliveries[cnt.name + '_flood'][wateryear] = 0.0
 3020: 
+3021:     self.set_canal_direction(flow_type)
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_23);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_23, function);
    }
  }
  __pyx_t_27 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_23, __pyx_t_1, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3021, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3022: 
 3023: 	##Direct deliveries from surface water sources
+3024:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3025:     for a in [self.pineflat, self.success, self.kaweah, self.isabella]:
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3025, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_27);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_23);
  PyTuple_SET_ITEM(__pyx_t_7, 1, __pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 2, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 3, __pyx_t_5);
  __pyx_t_27 = 0;
  __pyx_t_23 = 0;
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  __pyx_t_5 = __pyx_t_7; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (__pyx_t_9 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3025, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3026:       for z in self.reservoir_canal[a.key]:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
      __pyx_t_1 = __pyx_t_23; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3026, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3026, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3026, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3026, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        }
      } else {
        __pyx_t_23 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_23)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3026, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_23);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_23);
      __pyx_t_23 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3027:         self.set_canal_direction(flow_type)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_27 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_27)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_27);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_23 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_v_flow_type);
      __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
      if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3027, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3028: 
+3029:         canal_size = self.canal_district_len[z.name]
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_27);
      __pyx_t_27 = 0;
+3030:         total_canal_demand = self.search_canal_demand(dowy, z, a.key, z.name, 'normal', flow_type, wateryear,'delivery', {})
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3030, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3030, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3030, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_26 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3030, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_4 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_23, __pyx_t_8, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_26};
        __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3030, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_23, __pyx_t_8, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_26};
        __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3030, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      {
        __pyx_t_22 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_6, __pyx_t_8);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_delivery);
        __Pyx_GIVEREF(__pyx_n_u_delivery);
        PyTuple_SET_ITEM(__pyx_t_22, 7+__pyx_t_6, __pyx_n_u_delivery);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_22, 8+__pyx_t_6, __pyx_t_26);
        __pyx_t_23 = 0;
        __pyx_t_8 = 0;
        __pyx_t_26 = 0;
        __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_22, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_27);
      __pyx_t_27 = 0;
+3031:         available_flow = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3032:         for zz in total_canal_demand:
      if (likely(PyList_CheckExact(__pyx_v_total_canal_demand)) || PyTuple_CheckExact(__pyx_v_total_canal_demand)) {
        __pyx_t_27 = __pyx_v_total_canal_demand; __Pyx_INCREF(__pyx_t_27); __pyx_t_15 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_v_total_canal_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3032, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3032, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_27))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3032, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3032, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_7); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3032, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3032, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_14(__pyx_t_27);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3032, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3033:           available_flow += total_canal_demand[zz]
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3033, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_7); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3033, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_22);
        __pyx_t_22 = 0;
+3034:         excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, z, a.key, z.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3034, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3034, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3034, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_8 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_22);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_22, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[11] = {__pyx_t_8, __pyx_v_dowy, __pyx_v_z, __pyx_t_7, __pyx_t_26, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
        __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[11] = {__pyx_t_8, __pyx_v_dowy, __pyx_v_z, __pyx_t_7, __pyx_t_26, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
        __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_26);
        __Pyx_INCREF(__pyx_v_available_flow);
        __Pyx_GIVEREF(__pyx_v_available_flow);
        PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_v_available_flow);
        __Pyx_INCREF(__pyx_v_canal_size);
        __Pyx_GIVEREF(__pyx_v_canal_size);
        PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_6, __pyx_v_canal_size);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_23, 8+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_n_u_delivery);
        __Pyx_GIVEREF(__pyx_n_u_delivery);
        PyTuple_SET_ITEM(__pyx_t_23, 9+__pyx_t_6, __pyx_n_u_delivery);
        __pyx_t_7 = 0;
        __pyx_t_26 = 0;
        __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_23, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_27))) || (PyList_CheckExact(__pyx_t_27))) {
        PyObject* sequence = __pyx_t_27;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 3034, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_23 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_22 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_23 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_23);
        #else
        __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_23 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        #endif
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_26 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_26)->tp_iternext;
        index = 0; __pyx_t_22 = __pyx_t_10(__pyx_t_26); if (unlikely(!__pyx_t_22)) goto __pyx_L192_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_22);
        index = 1; __pyx_t_23 = __pyx_t_10(__pyx_t_26); if (unlikely(!__pyx_t_23)) goto __pyx_L192_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_23);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_26), 2) < 0) __PYX_ERR(0, 3034, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        goto __pyx_L193_unpacking_done;
        __pyx_L192_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 3034, __pyx_L1_error)
        __pyx_L193_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_22);
      __pyx_t_22 = 0;
      __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_23);
      __pyx_t_23 = 0;
 3035: 
 3036:         #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, a.key, z.name, 'normal',flow_type)
 3037:         #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, a.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
 3038: 
+3039:     self.set_canal_direction(flow_type)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_5 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3039, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3040:     for x in self.district_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3040, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3040, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3040, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3040, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3040, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3040, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3040, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3040, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3041:       x.demand_days = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_demand_days, __pyx_t_5) < 0) __PYX_ERR(0, 3041, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3042:       x.demand_days['current'] = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3042, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3042, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    if (unlikely(PyObject_SetItem(__pyx_t_27, __pyx_n_u_current, __pyx_t_5) < 0)) __PYX_ERR(0, 3042, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3043:       x.demand_days['lookahead'] = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    if (unlikely(PyObject_SetItem(__pyx_t_27, __pyx_n_u_lookahead, __pyx_t_5) < 0)) __PYX_ERR(0, 3043, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3044:       for y in self.contract_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3044, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_27 = __pyx_t_5; __Pyx_INCREF(__pyx_t_27); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3044, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3044, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_27))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3044, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3044, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3044, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3044, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_14(__pyx_t_27);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3044, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3045:         x.demand_days['current'][y.name] = 0.0
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_current); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3045, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_5, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3045, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3046:         x.demand_days['lookahead'][y.name] = 0.0
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_5, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3046, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 3047: 
+3048:     for x in self.city_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3048, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_27 = __pyx_t_1; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3048, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_12 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3048, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_27))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3048, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3048, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3048, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3048, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_27);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3048, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3049:       x.demand_days = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_demand_days, __pyx_t_1) < 0) __PYX_ERR(0, 3049, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3050:       x.demand_days['current'] = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3050, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3050, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_current, __pyx_t_1) < 0)) __PYX_ERR(0, 3050, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3051:       x.demand_days['lookahead'] = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_lookahead, __pyx_t_1) < 0)) __PYX_ERR(0, 3051, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3052:       for y in self.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3052, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_14 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3052, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3052, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3052, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3052, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_14(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3052, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3053:         x.demand_days['current'][y.name] = 0.0
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3053, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_current); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3053, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3053, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_1, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3053, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3054:         x.demand_days['lookahead'][y.name] = 0.0
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3054, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3054, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_1, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3054, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 3055: 
+3056:     for x in self.private_list:
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
    __pyx_t_5 = __pyx_t_27; __Pyx_INCREF(__pyx_t_5); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3056, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3056, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_27 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_27); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3056, __pyx_L1_error)
        #else
        __pyx_t_27 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3056, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_9); __Pyx_INCREF(__pyx_t_27); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3056, __pyx_L1_error)
        #else
        __pyx_t_27 = PySequence_ITEM(__pyx_t_5, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3056, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        #endif
      }
    } else {
      __pyx_t_27 = __pyx_t_12(__pyx_t_5);
      if (unlikely(!__pyx_t_27)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3056, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_27);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_27);
    __pyx_t_27 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3057:       x.demand_days = {}
    __pyx_t_27 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_demand_days, __pyx_t_27) < 0) __PYX_ERR(0, 3057, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3058:       x.demand_days['current'] = {}
    __pyx_t_27 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_current, __pyx_t_27) < 0)) __PYX_ERR(0, 3058, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3059:       x.demand_days['lookahead'] = {}
    __pyx_t_27 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3059, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3059, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_lookahead, __pyx_t_27) < 0)) __PYX_ERR(0, 3059, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3060:       for y in self.contract_list:
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3060, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
      __pyx_t_1 = __pyx_t_27; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3060, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3060, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3060, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3060, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3060, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3060, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        }
      } else {
        __pyx_t_27 = __pyx_t_14(__pyx_t_1);
        if (unlikely(!__pyx_t_27)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3060, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_27);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_27);
      __pyx_t_27 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3061:         x.demand_days['current'][y.name] = 0.0
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3061, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_current); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3061, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3061, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_27, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3061, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3062:         x.demand_days['lookahead'][y.name] = 0.0
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3062, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_23 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3062, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3062, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_27, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3062, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3063: 
+3064:     for y in self.contract_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3064, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3064, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3064, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3064, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3064, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3064, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3064, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_12(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3064, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3065:       reservoir = self.contract_reservoir[y.key]
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_23);
    __pyx_t_23 = 0;
+3066:       numdays_fillup = reservoir.numdays_fillup['demand']
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3066, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_numdays_fillup, __pyx_t_27);
    __pyx_t_27 = 0;
+3067:       if int(numdays_fillup) + dowy > 364:
    __pyx_t_27 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_23 = PyNumber_Add(__pyx_t_27, __pyx_v_dowy); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __pyx_t_27 = PyObject_RichCompare(__pyx_t_23, __pyx_int_364, Py_GT); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3067, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3067, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L208;
    }
+3068:         demand_days = dowy + int(numdays_fillup) - 364
      __pyx_t_27 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3068, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_23 = PyNumber_Add(__pyx_v_dowy, __pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3068, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_27 = __Pyx_PyInt_SubtractObjC(__pyx_t_23, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3068, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_XDECREF_SET(__pyx_v_demand_days, __pyx_t_27);
      __pyx_t_27 = 0;
+3069:         for x in self.urban_list:
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_urban_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3069, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
        __pyx_t_23 = __pyx_t_27; __Pyx_INCREF(__pyx_t_23); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3069, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_14 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3069, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_23))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_23)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_27 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3069, __pyx_L1_error)
            #else
            __pyx_t_27 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3069, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3069, __pyx_L1_error)
            #else
            __pyx_t_27 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3069, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            #endif
          }
        } else {
          __pyx_t_27 = __pyx_t_14(__pyx_t_23);
          if (unlikely(!__pyx_t_27)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3069, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_27);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_27);
        __pyx_t_27 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3070:           if y.type == 'contract':
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3070, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_27, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3070, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        if (__pyx_t_3) {
/* … */
          goto __pyx_L211;
        }
+3071:             total_contract = x.project_contract[y.name]
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3071, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3071, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_5); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3071, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_22);
          __pyx_t_22 = 0;
 3072:           else:
+3073:             total_contract = 0.0
        /*else*/ {
          __Pyx_INCREF(__pyx_float_0_0);
          __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
        }
        __pyx_L211:;
+3074:           x.demand_days['lookahead'][y.name] = x.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, demand_days, 0)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_27)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_27);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_int_0};
          __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3074, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_22);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_int_0};
          __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3074, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_22);
        } else
        #endif
        {
          __pyx_t_26 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3074, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          if (__pyx_t_27) {
            __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_27); __pyx_t_27 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_dowy);
          __Pyx_GIVEREF(__pyx_v_dowy);
          PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_6, __pyx_v_dowy);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_v_wyt);
          __Pyx_GIVEREF(__pyx_v_wyt);
          PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_6, __pyx_v_wyt);
          __Pyx_INCREF(__pyx_v_expected_pumping);
          __Pyx_GIVEREF(__pyx_v_expected_pumping);
          PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_6, __pyx_v_expected_pumping);
          __Pyx_INCREF(__pyx_v_total_contract);
          __Pyx_GIVEREF(__pyx_v_total_contract);
          PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_6, __pyx_v_total_contract);
          __Pyx_INCREF(__pyx_v_demand_days);
          __Pyx_GIVEREF(__pyx_v_demand_days);
          PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_6, __pyx_v_demand_days);
          __Pyx_INCREF(__pyx_int_0);
          __Pyx_GIVEREF(__pyx_int_0);
          PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_6, __pyx_int_0);
          __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_26, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3074, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_5, __pyx_t_22) < 0)) __PYX_ERR(0, 3074, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3075: 
 3076:           #x.demand_days['lookahead'][y.name] = np.sum(x.pumping[0][(t-dowy):(t+demand_days-dowy)])/1000.0
+3077:           x.demand_days['current'][y.name] = x.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, m-1)
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_26 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_27 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
          __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_5);
          if (likely(__pyx_t_27)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
            __Pyx_INCREF(__pyx_t_27);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_5, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_26};
          __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3077, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_26};
          __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3077, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3077, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_27) {
            __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_27); __pyx_t_27 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_int_0);
          __Pyx_GIVEREF(__pyx_int_0);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_int_0);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_v_wyt);
          __Pyx_GIVEREF(__pyx_v_wyt);
          PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_wyt);
          __Pyx_INCREF(__pyx_v_expected_pumping);
          __Pyx_GIVEREF(__pyx_v_expected_pumping);
          PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_v_expected_pumping);
          __Pyx_INCREF(__pyx_v_total_contract);
          __Pyx_GIVEREF(__pyx_v_total_contract);
          PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_v_total_contract);
          __Pyx_INCREF(__pyx_v_demand_days);
          __Pyx_GIVEREF(__pyx_v_demand_days);
          PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_v_demand_days);
          __Pyx_GIVEREF(__pyx_t_26);
          PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_6, __pyx_t_26);
          __pyx_t_26 = 0;
          __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3077, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_current); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_22) < 0)) __PYX_ERR(0, 3077, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3078: 
+3079:         for x in self.city_list:
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3079, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
        __pyx_t_22 = __pyx_t_23; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3079, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3079, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_22))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3079, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3079, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          }
        } else {
          __pyx_t_23 = __pyx_t_14(__pyx_t_22);
          if (unlikely(!__pyx_t_23)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3079, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_23);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_23);
        __pyx_t_23 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3080:           for xx in x.district_list:
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3080, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
          __pyx_t_5 = __pyx_t_23; __Pyx_INCREF(__pyx_t_5); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3080, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_16 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3080, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_5))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_5)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_23 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_23); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3080, __pyx_L1_error)
              #else
              __pyx_t_23 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3080, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_15); __Pyx_INCREF(__pyx_t_23); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3080, __pyx_L1_error)
              #else
              __pyx_t_23 = PySequence_ITEM(__pyx_t_5, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3080, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              #endif
            }
          } else {
            __pyx_t_23 = __pyx_t_16(__pyx_t_5);
            if (unlikely(!__pyx_t_23)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3080, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_23);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_23);
          __pyx_t_23 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 3081:             # district_object = self.district_keys[xx]
+3082:             if y.type == 'contract':
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3082, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_23, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3082, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (__pyx_t_3) {
/* … */
            goto __pyx_L216;
          }
+3083:               total_contract = self.district_keys[xx].project_contract[y.name]
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3083, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3083, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3083, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3083, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3083, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_26);
            __pyx_t_26 = 0;
 3084:             else:
+3085:               total_contract = 0.0
          /*else*/ {
            __Pyx_INCREF(__pyx_float_0_0);
            __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
          }
          __pyx_L216:;
+3086:             x.demand_days['lookahead'][y.name] += x.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, demand_days, xx, 0)
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_26); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_int_0};
            __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3086, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_27);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_int_0};
            __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3086, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_27);
          } else
          #endif
          {
            __pyx_t_25 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_v_t);
            __Pyx_GIVEREF(__pyx_v_t);
            PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_6, __pyx_v_t);
            __Pyx_INCREF(__pyx_v_dowy);
            __Pyx_GIVEREF(__pyx_v_dowy);
            PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_6, __pyx_v_dowy);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_INCREF(__pyx_v_wyt);
            __Pyx_GIVEREF(__pyx_v_wyt);
            PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_6, __pyx_v_wyt);
            __Pyx_INCREF(__pyx_v_expected_pumping);
            __Pyx_GIVEREF(__pyx_v_expected_pumping);
            PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_6, __pyx_v_expected_pumping);
            __Pyx_INCREF(__pyx_v_total_contract);
            __Pyx_GIVEREF(__pyx_v_total_contract);
            PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_6, __pyx_v_total_contract);
            __Pyx_INCREF(__pyx_v_demand_days);
            __Pyx_GIVEREF(__pyx_v_demand_days);
            PyTuple_SET_ITEM(__pyx_t_25, 6+__pyx_t_6, __pyx_v_demand_days);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_25, 7+__pyx_t_6, __pyx_v_xx);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_25, 8+__pyx_t_6, __pyx_int_0);
            __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_25, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_23, __pyx_t_27); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_26, __pyx_t_8) < 0)) __PYX_ERR(0, 3086, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3087:             x.demand_days['current'][y.name] += x.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, xx, m-1)
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_26 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_current); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_25 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_4 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_23);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_23, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_23)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_t_25};
            __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3087, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_t_25};
            __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3087, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3087, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_v_t);
            __Pyx_GIVEREF(__pyx_v_t);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_t);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_int_0);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_INCREF(__pyx_v_wyt);
            __Pyx_GIVEREF(__pyx_v_wyt);
            PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_6, __pyx_v_wyt);
            __Pyx_INCREF(__pyx_v_expected_pumping);
            __Pyx_GIVEREF(__pyx_v_expected_pumping);
            PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_6, __pyx_v_expected_pumping);
            __Pyx_INCREF(__pyx_v_total_contract);
            __Pyx_GIVEREF(__pyx_v_total_contract);
            PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_6, __pyx_v_total_contract);
            __Pyx_INCREF(__pyx_v_demand_days);
            __Pyx_GIVEREF(__pyx_v_demand_days);
            PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_6, __pyx_v_demand_days);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_2, 7+__pyx_t_6, __pyx_v_xx);
            __Pyx_GIVEREF(__pyx_t_25);
            PyTuple_SET_ITEM(__pyx_t_2, 8+__pyx_t_6, __pyx_t_25);
            __pyx_t_25 = 0;
            __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_2, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3087, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_7, __pyx_t_23) < 0)) __PYX_ERR(0, 3087, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 3088: 
 3089:       else:
+3090:         demand_days = int(numdays_fillup)
    /*else*/ {
      __pyx_t_22 = __Pyx_PyNumber_Int(__pyx_v_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3090, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_XDECREF_SET(__pyx_v_demand_days, __pyx_t_22);
      __pyx_t_22 = 0;
+3091:         if y.name == 'tableA':
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3091, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_22, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3091, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L217;
      }
+3092:           lookahead_days = dowy + int(fill_up_cross_swp) - 364
        __pyx_t_22 = __Pyx_PyNumber_Int(__pyx_v_fill_up_cross_swp); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3092, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_5 = PyNumber_Add(__pyx_v_dowy, __pyx_t_22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3092, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = __Pyx_PyInt_SubtractObjC(__pyx_t_5, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3092, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
        __pyx_t_22 = 0;
+3093:         elif y.name == 'cvpdelta' or y.name == 'exchange':
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_22, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3093, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L218_bool_binop_done;
      }
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3093, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_22, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3093, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_3 = __pyx_t_11;
      __pyx_L218_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L217;
      }
+3094:           lookahead_days = dowy + int(fill_up_cross_cvp) - 364
        __pyx_t_22 = __Pyx_PyNumber_Int(__pyx_v_fill_up_cross_cvp); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3094, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_5 = PyNumber_Add(__pyx_v_dowy, __pyx_t_22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3094, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = __Pyx_PyInt_SubtractObjC(__pyx_t_5, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3094, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
        __pyx_t_22 = 0;
 3095:         else:
+3096:           lookahead_days = 0
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_int_0);
      }
      __pyx_L217:;
+3097:         for x in self.urban_list:
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_urban_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
        __pyx_t_5 = __pyx_t_22; __Pyx_INCREF(__pyx_t_5); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3097, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_14 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3097, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3097, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3097, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3097, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_5, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3097, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          }
        } else {
          __pyx_t_22 = __pyx_t_14(__pyx_t_5);
          if (unlikely(!__pyx_t_22)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3097, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_22);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
        __pyx_t_22 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+3098:           if y.type == 'contract':
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_22, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3098, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        if (__pyx_t_3) {
/* … */
          goto __pyx_L222;
        }
+3099:             total_contract = x.project_contract[y.name]
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3099, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3099, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_26); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3099, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_7);
          __pyx_t_7 = 0;
 3100:           else:
+3101:             total_contract = 0.0
        /*else*/ {
          __Pyx_INCREF(__pyx_float_0_0);
          __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
        }
        __pyx_L222:;
 3102: 
+3103:           x.demand_days['current'][y.name] = x.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, m-1)
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_22 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_23 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) {
          __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_26);
          if (likely(__pyx_t_23)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
            __Pyx_INCREF(__pyx_t_23);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_26, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_26)) {
          PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_22};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3103, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) {
          PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_t_22};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3103, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        } else
        #endif
        {
          __pyx_t_27 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3103, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          if (__pyx_t_23) {
            __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_23); __pyx_t_23 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_int_0);
          __Pyx_GIVEREF(__pyx_int_0);
          PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_6, __pyx_int_0);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_v_wyt);
          __Pyx_GIVEREF(__pyx_v_wyt);
          PyTuple_SET_ITEM(__pyx_t_27, 3+__pyx_t_6, __pyx_v_wyt);
          __Pyx_INCREF(__pyx_v_expected_pumping);
          __Pyx_GIVEREF(__pyx_v_expected_pumping);
          PyTuple_SET_ITEM(__pyx_t_27, 4+__pyx_t_6, __pyx_v_expected_pumping);
          __Pyx_INCREF(__pyx_v_total_contract);
          __Pyx_GIVEREF(__pyx_v_total_contract);
          PyTuple_SET_ITEM(__pyx_t_27, 5+__pyx_t_6, __pyx_v_total_contract);
          __Pyx_INCREF(__pyx_v_demand_days);
          __Pyx_GIVEREF(__pyx_v_demand_days);
          PyTuple_SET_ITEM(__pyx_t_27, 6+__pyx_t_6, __pyx_v_demand_days);
          __Pyx_GIVEREF(__pyx_t_22);
          PyTuple_SET_ITEM(__pyx_t_27, 7+__pyx_t_6, __pyx_t_22);
          __pyx_t_22 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_27, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3103, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_n_u_current); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        if (unlikely(PyObject_SetItem(__pyx_t_27, __pyx_t_26, __pyx_t_7) < 0)) __PYX_ERR(0, 3103, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3104:           x.demand_days['lookahead'][y.name]= x.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, lookahead_days, 0)
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3104, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_27 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) {
          __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_26);
          if (likely(__pyx_t_27)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
            __Pyx_INCREF(__pyx_t_27);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_26, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_26)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_int_0};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3104, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_7);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) {
          PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_int_0};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3104, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_GOTREF(__pyx_t_7);
        } else
        #endif
        {
          __pyx_t_22 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          if (__pyx_t_27) {
            __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_27); __pyx_t_27 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_dowy);
          __Pyx_GIVEREF(__pyx_v_dowy);
          PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_v_dowy);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_v_wyt);
          __Pyx_GIVEREF(__pyx_v_wyt);
          PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_6, __pyx_v_wyt);
          __Pyx_INCREF(__pyx_v_expected_pumping);
          __Pyx_GIVEREF(__pyx_v_expected_pumping);
          PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_6, __pyx_v_expected_pumping);
          __Pyx_INCREF(__pyx_v_total_contract);
          __Pyx_GIVEREF(__pyx_v_total_contract);
          PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_6, __pyx_v_total_contract);
          __Pyx_INCREF(__pyx_v_lookahead_days);
          __Pyx_GIVEREF(__pyx_v_lookahead_days);
          PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_6, __pyx_v_lookahead_days);
          __Pyx_INCREF(__pyx_int_0);
          __Pyx_GIVEREF(__pyx_int_0);
          PyTuple_SET_ITEM(__pyx_t_22, 7+__pyx_t_6, __pyx_int_0);
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3104, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_26, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3104, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3104, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_26, __pyx_t_7) < 0)) __PYX_ERR(0, 3104, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3105:         for x in self.city_list:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3105, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3105, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_14 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3105, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3105, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3105, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3105, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3105, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_14(__pyx_t_7);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3105, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __pyx_L208:;
+3106:           for xx in x.district_list:
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3106, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
          __pyx_t_26 = __pyx_t_5; __Pyx_INCREF(__pyx_t_26); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3106, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_16 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3106, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_26))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3106, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3106, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3106, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3106, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            }
          } else {
            __pyx_t_5 = __pyx_t_16(__pyx_t_26);
            if (unlikely(!__pyx_t_5)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3106, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_5);
          __pyx_t_5 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 3107:             # district_object = self.district_keys[xx]
+3108:             if y.type == 'contract':
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3108, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_contract, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3108, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_3) {
/* … */
            goto __pyx_L227;
          }
+3109:               total_contract = self.district_keys[xx].project_contract[y.name]
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_22); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3109, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_t_27);
            __pyx_t_27 = 0;
 3110:             else:
+3111:               total_contract = 0.0
          /*else*/ {
            __Pyx_INCREF(__pyx_float_0_0);
            __Pyx_XDECREF_SET(__pyx_v_total_contract, __pyx_float_0_0);
          }
          __pyx_L227:;
+3112:             x.demand_days['current'][y.name] += x.get_urban_recovery_target(t, 0, wateryear, wyt, expected_pumping, total_contract, demand_days, xx, m-1)
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_current); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_27); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_25 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
            __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_8);
            if (likely(__pyx_t_25)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_25);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_8, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_t_2};
            __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3112, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
            PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_t, __pyx_int_0, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_demand_days, __pyx_v_xx, __pyx_t_2};
            __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3112, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3112, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_25) {
              __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_25); __pyx_t_25 = NULL;
            }
            __Pyx_INCREF(__pyx_v_t);
            __Pyx_GIVEREF(__pyx_v_t);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_t);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_int_0);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_INCREF(__pyx_v_wyt);
            __Pyx_GIVEREF(__pyx_v_wyt);
            PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_wyt);
            __Pyx_INCREF(__pyx_v_expected_pumping);
            __Pyx_GIVEREF(__pyx_v_expected_pumping);
            PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_6, __pyx_v_expected_pumping);
            __Pyx_INCREF(__pyx_v_total_contract);
            __Pyx_GIVEREF(__pyx_v_total_contract);
            PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_6, __pyx_v_total_contract);
            __Pyx_INCREF(__pyx_v_demand_days);
            __Pyx_GIVEREF(__pyx_v_demand_days);
            PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_6, __pyx_v_demand_days);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_4, 7+__pyx_t_6, __pyx_v_xx);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_4, 8+__pyx_t_6, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_4, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3112, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_23); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_t_27, __pyx_t_8) < 0)) __PYX_ERR(0, 3112, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3113:             x.demand_days['lookahead'][y.name] += x.get_urban_recovery_target(t, dowy, wateryear, wyt, expected_pumping, total_contract, lookahead_days, xx, 0)
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_demand_days); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_22); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_get_urban_recovery_target); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_4 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
            __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_5);
            if (likely(__pyx_t_4)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
              __Pyx_INCREF(__pyx_t_4);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_5, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_v_xx, __pyx_int_0};
            __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3113, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_23);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
            PyObject *__pyx_temp[10] = {__pyx_t_4, __pyx_v_t, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_wyt, __pyx_v_expected_pumping, __pyx_v_total_contract, __pyx_v_lookahead_days, __pyx_v_xx, __pyx_int_0};
            __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3113, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_GOTREF(__pyx_t_23);
          } else
          #endif
          {
            __pyx_t_2 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3113, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (__pyx_t_4) {
              __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_4); __pyx_t_4 = NULL;
            }
            __Pyx_INCREF(__pyx_v_t);
            __Pyx_GIVEREF(__pyx_v_t);
            PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_t);
            __Pyx_INCREF(__pyx_v_dowy);
            __Pyx_GIVEREF(__pyx_v_dowy);
            PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_dowy);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_INCREF(__pyx_v_wyt);
            __Pyx_GIVEREF(__pyx_v_wyt);
            PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_6, __pyx_v_wyt);
            __Pyx_INCREF(__pyx_v_expected_pumping);
            __Pyx_GIVEREF(__pyx_v_expected_pumping);
            PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_6, __pyx_v_expected_pumping);
            __Pyx_INCREF(__pyx_v_total_contract);
            __Pyx_GIVEREF(__pyx_v_total_contract);
            PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_6, __pyx_v_total_contract);
            __Pyx_INCREF(__pyx_v_lookahead_days);
            __Pyx_GIVEREF(__pyx_v_lookahead_days);
            PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_6, __pyx_v_lookahead_days);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_2, 7+__pyx_t_6, __pyx_v_xx);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_2, 8+__pyx_t_6, __pyx_int_0);
            __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_2, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3113, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_27, __pyx_t_22, __pyx_t_5) < 0)) __PYX_ERR(0, 3113, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3114: 
 3115: 
 3116:     #Find district banking needs
+3117:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3117, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3117, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3117, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3117, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3117, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_1); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3117, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3117, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_12(__pyx_t_7);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3117, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3118:       for y in x.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3118, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_26 = __pyx_t_1; __Pyx_INCREF(__pyx_t_26); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3118, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_14 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3118, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_26))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3118, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3118, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_26, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3118, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_14(__pyx_t_26);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3118, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 3119:         # contract_object = self.contract_keys[y]
+3120:         reservoir = self.contract_reservoir[self.contract_keys[y].key]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_key); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_27); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_22);
      __pyx_t_22 = 0;
+3121:         if y == 'tableA':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3121, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
        goto __pyx_L232;
      }
+3122:           lookahead_days = fill_up_cross_swp
        __Pyx_INCREF(__pyx_v_fill_up_cross_swp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3123:           carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
        __pyx_t_19 = 999.9;
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_27, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3123, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_3) {
          __pyx_t_5 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3123, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_22 = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_27);
          __pyx_t_22 = __pyx_t_27;
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __pyx_t_22;
        __Pyx_INCREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_27);
        __pyx_t_27 = 0;
+3124:         elif y == 'cvpdelta' or y == 'exchange' or y == 'cvc':
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3124, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L233_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3124, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L233_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3124, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_11;
      __pyx_L233_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L232;
      }
+3125:           lookahead_days = fill_up_cross_cvp
        __Pyx_INCREF(__pyx_v_fill_up_cross_cvp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
+3126:           carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
        __pyx_t_19 = 999.9;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_5 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_22, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3126, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3126, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_3) {
          __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3126, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_27 = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_22);
          __pyx_t_27 = __pyx_t_22;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = __pyx_t_27;
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_22);
        __pyx_t_22 = 0;
+3127:         elif y == 'kings':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_kings, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3127, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
        goto __pyx_L232;
      }
+3128:           lookahead_days = min(reservoir.numdays_fillup['lookahead'], max(365.0 - dowy, 0.0))
        __pyx_t_19 = 0.0;
        __pyx_t_22 = __Pyx_PyFloat_SubtractCObj(__pyx_float_365_0, __pyx_v_dowy, 365.0, 0, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_22, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_3) {
          __pyx_t_5 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3128, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_27 = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_22);
          __pyx_t_27 = __pyx_t_22;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_INCREF(__pyx_t_27);
        __pyx_t_22 = __pyx_t_27;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_22, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3128, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_3) {
          __Pyx_INCREF(__pyx_t_22);
          __pyx_t_27 = __pyx_t_22;
        } else {
          __Pyx_INCREF(__pyx_t_5);
          __pyx_t_27 = __pyx_t_5;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = __pyx_t_27;
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
        __pyx_t_22 = 0;
+3129:           carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
        __pyx_t_19 = 999.9;
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_5 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3129, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_5, __pyx_t_27, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3129, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_3) {
          __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3129, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_22 = __pyx_t_1;
          __pyx_t_1 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_27);
          __pyx_t_22 = __pyx_t_27;
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __pyx_t_22;
        __Pyx_INCREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_27);
        __pyx_t_27 = 0;
 3130:         else:
+3131:           lookahead_days = reservoir.numdays_fillup['lookahead']
      /*else*/ {
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3131, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_27, __pyx_n_u_lookahead); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3131, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
        __pyx_t_22 = 0;
+3132:           carryover_days = min(reservoir.numdays_fillup['demand'], 999.9)
        __pyx_t_19 = 999.9;
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_27 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_1 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3132, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_27, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3132, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3132, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_3) {
          __pyx_t_5 = PyFloat_FromDouble(__pyx_t_19); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3132, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_22 = __pyx_t_5;
          __pyx_t_5 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_27);
          __pyx_t_22 = __pyx_t_27;
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __pyx_t_22;
        __Pyx_INCREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_XDECREF_SET(__pyx_v_carryover_days, __pyx_t_27);
        __pyx_t_27 = 0;
      }
      __pyx_L232:;
+3133:         additional_carryover = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
 3134: 
+3135:         x.open_recharge(t,m-1,da,wateryear,year_index,self.days_in_month, carryover_days, lookahead_days, self.contract_keys[y].tot_carryover - self.contract_keys[y].annual_deliveries[wateryear], y, wyt, self.contract_turnouts[y], 0.0, self.contract_keys[y].allocation_priority)
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_annual_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_wateryear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_Subtract(__pyx_t_23, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_y); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3135, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_22);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_22, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[15] = {__pyx_t_4, __pyx_v_t, __pyx_t_5, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_1, __pyx_v_carryover_days, __pyx_v_lookahead_days, __pyx_t_8, __pyx_v_y, __pyx_v_wyt, __pyx_t_23, __pyx_float_0_0, __pyx_t_2};
        __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 14+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3135, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[15] = {__pyx_t_4, __pyx_v_t, __pyx_t_5, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_1, __pyx_v_carryover_days, __pyx_v_lookahead_days, __pyx_t_8, __pyx_v_y, __pyx_v_wyt, __pyx_t_23, __pyx_float_0_0, __pyx_t_2};
        __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 14+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3135, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_25 = PyTuple_New(14+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_6, __pyx_t_5);
        __Pyx_INCREF(__pyx_v_da);
        __Pyx_GIVEREF(__pyx_v_da);
        PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_6, __pyx_v_da);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_v_year_index);
        PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_6, __pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_6, __pyx_t_1);
        __Pyx_INCREF(__pyx_v_carryover_days);
        __Pyx_GIVEREF(__pyx_v_carryover_days);
        PyTuple_SET_ITEM(__pyx_t_25, 6+__pyx_t_6, __pyx_v_carryover_days);
        __Pyx_INCREF(__pyx_v_lookahead_days);
        __Pyx_GIVEREF(__pyx_v_lookahead_days);
        PyTuple_SET_ITEM(__pyx_t_25, 7+__pyx_t_6, __pyx_v_lookahead_days);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_25, 8+__pyx_t_6, __pyx_t_8);
        __Pyx_INCREF(__pyx_v_y);
        __Pyx_GIVEREF(__pyx_v_y);
        PyTuple_SET_ITEM(__pyx_t_25, 9+__pyx_t_6, __pyx_v_y);
        __Pyx_INCREF(__pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_v_wyt);
        PyTuple_SET_ITEM(__pyx_t_25, 10+__pyx_t_6, __pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_25, 11+__pyx_t_6, __pyx_t_23);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_25, 12+__pyx_t_6, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_25, 13+__pyx_t_6, __pyx_t_2);
        __pyx_t_5 = 0;
        __pyx_t_1 = 0;
        __pyx_t_8 = 0;
        __pyx_t_23 = 0;
        __pyx_t_2 = 0;
        __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_25, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3135, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3136: 
+3137:     for x in self.private_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3137, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_26 = __pyx_t_7; __Pyx_INCREF(__pyx_t_26); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3137, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_12 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3137, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_26))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3137, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3137, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_26, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_12(__pyx_t_26);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3137, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3138:       for y in x.contract_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3138, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_27 = __pyx_t_7; __Pyx_INCREF(__pyx_t_27); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3138, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3138, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_27))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3138, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3138, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3138, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3138, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_14(__pyx_t_27);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3138, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3139:         # contract_object = self.contract_keys[y]
+3140:         reservoir = self.contract_reservoir[self.contract_keys[y].key]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_y); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_22); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3140, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_25);
      __pyx_t_25 = 0;
+3141:         if y == 'tableA':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3141, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
        goto __pyx_L240;
      }
+3142:           lookahead_days = fill_up_cross_swp
        __Pyx_INCREF(__pyx_v_fill_up_cross_swp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3143:         elif y == 'cvpdelta' or y == 'exchange' or y == 'cvc':
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3143, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L241_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3143, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L241_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3143, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_11;
      __pyx_L241_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L240;
      }
+3144:           lookahead_days = fill_up_cross_cvp
        __Pyx_INCREF(__pyx_v_fill_up_cross_cvp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
 3145:         else:
+3146:           lookahead_days = reservoir.numdays_fillup['demand']
      /*else*/ {
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3146, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_25, __pyx_n_u_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3146, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_22);
        __pyx_t_22 = 0;
      }
      __pyx_L240:;
 3147: 
+3148:         additional_carryover = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
 3149: 
 3150:           #additional_carryover += x.contract_carryover_list[xx][y]
+3151:         x.open_recharge(t,m-1,da,wateryear,year_index,self.days_in_month, reservoir.numdays_fillup['demand'], lookahead_days, y, wyt, self.contract_turnouts[y], additional_carryover, self.contract_keys[y].allocation_priority)
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_23, __pyx_n_u_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_y); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_25);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_25, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_25)) {
        PyObject *__pyx_temp[14] = {__pyx_t_5, __pyx_v_t, __pyx_t_7, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_2, __pyx_t_8, __pyx_v_lookahead_days, __pyx_v_y, __pyx_v_wyt, __pyx_t_1, __pyx_v_additional_carryover, __pyx_t_23};
        __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3151, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
        PyObject *__pyx_temp[14] = {__pyx_t_5, __pyx_v_t, __pyx_t_7, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_2, __pyx_t_8, __pyx_v_lookahead_days, __pyx_v_y, __pyx_v_wyt, __pyx_t_1, __pyx_v_additional_carryover, __pyx_t_23};
        __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3151, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      } else
      #endif
      {
        __pyx_t_4 = PyTuple_New(13+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3151, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_t_7);
        __Pyx_INCREF(__pyx_v_da);
        __Pyx_GIVEREF(__pyx_v_da);
        PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_da);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_v_year_index);
        PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_6, __pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_6, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_6, __pyx_t_8);
        __Pyx_INCREF(__pyx_v_lookahead_days);
        __Pyx_GIVEREF(__pyx_v_lookahead_days);
        PyTuple_SET_ITEM(__pyx_t_4, 7+__pyx_t_6, __pyx_v_lookahead_days);
        __Pyx_INCREF(__pyx_v_y);
        __Pyx_GIVEREF(__pyx_v_y);
        PyTuple_SET_ITEM(__pyx_t_4, 8+__pyx_t_6, __pyx_v_y);
        __Pyx_INCREF(__pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_v_wyt);
        PyTuple_SET_ITEM(__pyx_t_4, 9+__pyx_t_6, __pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_4, 10+__pyx_t_6, __pyx_t_1);
        __Pyx_INCREF(__pyx_v_additional_carryover);
        __Pyx_GIVEREF(__pyx_v_additional_carryover);
        PyTuple_SET_ITEM(__pyx_t_4, 11+__pyx_t_6, __pyx_v_additional_carryover);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_4, 12+__pyx_t_6, __pyx_t_23);
        __pyx_t_7 = 0;
        __pyx_t_2 = 0;
        __pyx_t_8 = 0;
        __pyx_t_1 = 0;
        __pyx_t_23 = 0;
        __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_4, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3151, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3152:     for x in self.city_list:
  __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3152, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_26);
  if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
    __pyx_t_27 = __pyx_t_26; __Pyx_INCREF(__pyx_t_27); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_12 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3152, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_27))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3152, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3152, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_9); __Pyx_INCREF(__pyx_t_26); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3152, __pyx_L1_error)
        #else
        __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3152, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        #endif
      }
    } else {
      __pyx_t_26 = __pyx_t_12(__pyx_t_27);
      if (unlikely(!__pyx_t_26)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3152, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_26);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_26);
    __pyx_t_26 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3153:       for y in x.contract_list:
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3153, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
      __pyx_t_22 = __pyx_t_26; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3153, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3153, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3153, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_26); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3153, __pyx_L1_error)
          #else
          __pyx_t_26 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3153, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          #endif
        }
      } else {
        __pyx_t_26 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_26)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3153, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_26);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_26);
      __pyx_t_26 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3154:         # contract_object = self.contract_keys[y]
+3155:         reservoir = self.contract_reservoir[self.contract_keys[y].key]
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_y); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_key); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_4);
      __pyx_t_4 = 0;
+3156:         if y == 'tableA':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3156, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
        goto __pyx_L248;
      }
+3157:           lookahead_days = fill_up_cross_swp
        __Pyx_INCREF(__pyx_v_fill_up_cross_swp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_swp);
+3158:         elif y == 'cvpdelta' or y == 'exchange' or y == 'cvc':
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvpdelta, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L249_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_exchange, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error)
      if (!__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L249_bool_binop_done;
      }
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_y, __pyx_n_u_cvc, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3158, __pyx_L1_error)
      __pyx_t_3 = __pyx_t_11;
      __pyx_L249_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L248;
      }
+3159:           lookahead_days = fill_up_cross_cvp
        __Pyx_INCREF(__pyx_v_fill_up_cross_cvp);
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_v_fill_up_cross_cvp);
 3160:         else:
+3161:           lookahead_days = reservoir.numdays_fillup['demand']
      /*else*/ {
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3161, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_25 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_demand); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3161, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_lookahead_days, __pyx_t_25);
        __pyx_t_25 = 0;
      }
      __pyx_L248:;
 3162: 
+3163:         additional_carryover = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_additional_carryover, __pyx_float_0_0);
+3164:         for xx in x.district_list:
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3164, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
        __pyx_t_4 = __pyx_t_25; __Pyx_INCREF(__pyx_t_4); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3164, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_16 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3164, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3164, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3164, __pyx_L1_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_4, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3164, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          }
        } else {
          __pyx_t_25 = __pyx_t_16(__pyx_t_4);
          if (unlikely(!__pyx_t_25)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3164, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_25);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_25);
        __pyx_t_25 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3165:           if t + lookahead_days < self.T:
        __pyx_t_25 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3165, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3165, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_23 = PyObject_RichCompare(__pyx_t_25, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3165, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3165, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        if (__pyx_t_3) {
/* … */
          goto __pyx_L254;
        }
+3166:             additional_carryover += np.sum(x.pumping[xx][(t+365-dowy): int(t+lookahead_days) ])/1000.0
          __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_np); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_sum); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_8 = PyNumber_Subtract(__pyx_t_26, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_2 = __Pyx_PyNumber_Int(__pyx_t_26); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_t_8, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_25))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_25);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_25, function);
            }
          }
          __pyx_t_23 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_25, __pyx_t_2, __pyx_t_26) : __Pyx_PyObject_CallOneArg(__pyx_t_25, __pyx_t_26);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __pyx_t_25 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_23, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_additional_carryover, __pyx_t_25); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3166, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_t_23);
          __pyx_t_23 = 0;
 3167:           else:
+3168:             if lookahead_days > 365:
        /*else*/ {
          __pyx_t_23 = PyObject_RichCompare(__pyx_v_lookahead_days, __pyx_int_365, Py_GT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3168, __pyx_L1_error)
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3168, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (__pyx_t_3) {
/* … */
            goto __pyx_L255;
          }
+3169:               additional_carryover= 999.9
            __Pyx_INCREF(__pyx_float_999_9);
            __Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_float_999_9);
 3170:             else:
+3171:               additional_carryover += np.sum(x.pumping[xx][(t-dowy): int(t + lookahead_days - 365) ])/1000.0
          /*else*/ {
            __Pyx_GetModuleGlobalName(__pyx_t_25, __pyx_n_s_np); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_sum); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_pumping); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_8 = PyNumber_Add(__pyx_v_t, __pyx_v_lookahead_days); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_t_8, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_PyNumber_Int(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_t_25, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_26))) {
              __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_26);
              if (likely(__pyx_t_8)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
                __Pyx_INCREF(__pyx_t_8);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_26, function);
              }
            }
            __pyx_t_23 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_26, __pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_26, __pyx_t_1);
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __pyx_t_26 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_23, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_v_additional_carryover, __pyx_t_26); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3171, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF_SET(__pyx_v_additional_carryover, __pyx_t_23);
            __pyx_t_23 = 0;
          }
          __pyx_L255:;
        }
        __pyx_L254:;
 3172: 
+3173:         x.open_recharge(t, m-1, da, wateryear, year_index, self.days_in_month, reservoir.numdays_fillup['demand'], lookahead_days, y, wyt, self.contract_turnouts[y], 0.0, self.contract_keys[y].allocation_priority)
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_open_recharge); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_26 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_numdays_fillup); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_25 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_demand); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_turnouts); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_allocation_priority); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3173, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_23);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_23, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[14] = {__pyx_t_7, __pyx_v_t, __pyx_t_26, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_1, __pyx_t_25, __pyx_v_lookahead_days, __pyx_v_y, __pyx_v_wyt, __pyx_t_2, __pyx_float_0_0, __pyx_t_8};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3173, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[14] = {__pyx_t_7, __pyx_v_t, __pyx_t_26, __pyx_v_da, __pyx_v_wateryear, __pyx_v_year_index, __pyx_t_1, __pyx_t_25, __pyx_v_lookahead_days, __pyx_v_y, __pyx_v_wyt, __pyx_t_2, __pyx_float_0_0, __pyx_t_8};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3173, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(13+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_26);
        __Pyx_INCREF(__pyx_v_da);
        __Pyx_GIVEREF(__pyx_v_da);
        PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_da);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_v_year_index);
        PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_6, __pyx_v_year_index);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_6, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_6, __pyx_t_25);
        __Pyx_INCREF(__pyx_v_lookahead_days);
        __Pyx_GIVEREF(__pyx_v_lookahead_days);
        PyTuple_SET_ITEM(__pyx_t_5, 7+__pyx_t_6, __pyx_v_lookahead_days);
        __Pyx_INCREF(__pyx_v_y);
        __Pyx_GIVEREF(__pyx_v_y);
        PyTuple_SET_ITEM(__pyx_t_5, 8+__pyx_t_6, __pyx_v_y);
        __Pyx_INCREF(__pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_v_wyt);
        PyTuple_SET_ITEM(__pyx_t_5, 9+__pyx_t_6, __pyx_v_wyt);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_5, 10+__pyx_t_6, __pyx_t_2);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_5, 11+__pyx_t_6, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_5, 12+__pyx_t_6, __pyx_t_8);
        __pyx_t_26 = 0;
        __pyx_t_1 = 0;
        __pyx_t_25 = 0;
        __pyx_t_2 = 0;
        __pyx_t_8 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3173, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 3174: 
 3175: 	##Deliveries for banking
+3176:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3177:     for a in [self.isabella, self.pineflat, self.success, self.kaweah]:
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pineflat); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3177, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_27);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_27);
  __Pyx_GIVEREF(__pyx_t_22);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_23);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_23);
  __pyx_t_27 = 0;
  __pyx_t_22 = 0;
  __pyx_t_4 = 0;
  __pyx_t_23 = 0;
  __pyx_t_23 = __pyx_t_5; __Pyx_INCREF(__pyx_t_23); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_9 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3177, __pyx_L1_error)
    #else
    __pyx_t_5 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3177, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3178:       for z in self.reservoir_canal[a.key]:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3178, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
      __pyx_t_4 = __pyx_t_22; __Pyx_INCREF(__pyx_t_4); __pyx_t_13 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3178, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_12 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3178, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3178, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3178, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_4, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3178, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        }
      } else {
        __pyx_t_22 = __pyx_t_12(__pyx_t_4);
        if (unlikely(!__pyx_t_22)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3178, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_22);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3179:         self.set_canal_direction(flow_type)
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_27 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_27)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_27);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
        }
      }
      __pyx_t_22 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_v_flow_type);
      __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
      if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3179, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3180: 
+3181:         canal_size = self.canal_district_len[z.name]
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_t_5); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3181, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_27);
      __pyx_t_27 = 0;
+3182:         total_canal_demand = self.search_canal_demand(dowy, z, a.key, z.name, 'normal',flow_type,wateryear,'banking', {})
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3182, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_25 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
        __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_5);
        if (likely(__pyx_t_25)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
          __Pyx_INCREF(__pyx_t_25);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_5, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_dowy, __pyx_v_z, __pyx_t_22, __pyx_t_8, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_banking, __pyx_t_2};
        __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3182, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
        PyObject *__pyx_temp[10] = {__pyx_t_25, __pyx_v_dowy, __pyx_v_z, __pyx_t_22, __pyx_t_8, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_banking, __pyx_t_2};
        __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3182, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3182, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (__pyx_t_25) {
          __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_25); __pyx_t_25 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_22);
        PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_t_22);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_6, __pyx_t_8);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_n_u_banking);
        PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_6, __pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_6, __pyx_t_2);
        __pyx_t_22 = 0;
        __pyx_t_8 = 0;
        __pyx_t_2 = 0;
        __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_1, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3182, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_27);
      __pyx_t_27 = 0;
+3183:         available_flow = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3184:         for zz in total_canal_demand:
      if (likely(PyList_CheckExact(__pyx_v_total_canal_demand)) || PyTuple_CheckExact(__pyx_v_total_canal_demand)) {
        __pyx_t_27 = __pyx_v_total_canal_demand; __Pyx_INCREF(__pyx_t_27); __pyx_t_15 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_v_total_canal_demand); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3184, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3184, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_27))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3184, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3184, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_14(__pyx_t_27);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3184, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3185:           available_flow += total_canal_demand[zz]
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3185, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_1);
        __pyx_t_1 = 0;
+3186:         excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, z, a.key, z.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'banking')
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3186, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[11] = {__pyx_t_8, __pyx_v_dowy, __pyx_v_z, __pyx_t_5, __pyx_t_2, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking};
        __pyx_t_27 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
        PyObject *__pyx_temp[11] = {__pyx_t_8, __pyx_v_dowy, __pyx_v_z, __pyx_t_5, __pyx_t_2, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking};
        __pyx_t_27 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else
      #endif
      {
        __pyx_t_22 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_6, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_6, __pyx_t_2);
        __Pyx_INCREF(__pyx_v_available_flow);
        __Pyx_GIVEREF(__pyx_v_available_flow);
        PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_6, __pyx_v_available_flow);
        __Pyx_INCREF(__pyx_v_canal_size);
        __Pyx_GIVEREF(__pyx_v_canal_size);
        PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_6, __pyx_v_canal_size);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_22, 7+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_22, 8+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_n_u_banking);
        PyTuple_SET_ITEM(__pyx_t_22, 9+__pyx_t_6, __pyx_n_u_banking);
        __pyx_t_5 = 0;
        __pyx_t_2 = 0;
        __pyx_t_27 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_22, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_27))) || (PyList_CheckExact(__pyx_t_27))) {
        PyObject* sequence = __pyx_t_27;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 3186, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_1 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_22 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_22);
        #else
        __pyx_t_1 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_22 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_2 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3186, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_2)->tp_iternext;
        index = 0; __pyx_t_1 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_1)) goto __pyx_L262_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        index = 1; __pyx_t_22 = __pyx_t_10(__pyx_t_2); if (unlikely(!__pyx_t_22)) goto __pyx_L262_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_22);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_2), 2) < 0) __PYX_ERR(0, 3186, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        goto __pyx_L263_unpacking_done;
        __pyx_L262_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 3186, __pyx_L1_error)
        __pyx_L263_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_1);
      __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_22);
      __pyx_t_22 = 0;
 3187: 
+3188:     self.set_canal_direction(flow_type)
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_23 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3188, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3189: 
 3190: 
 3191: 
 3192:     #toggle to enable flood releases to go to districts/banks that don't have a contract w/the reservoir
 3193:     #only san luis restricts flood releases to contractors only (b/c otherwise they just dont pump)
+3194:     overflow_deliveries = 1
  __pyx_v_overflow_deliveries = 1;
+3195:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3196:     self.set_canal_direction(flow_type)
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_23 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3196, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3197:     #if flow is already on a bi-directional canal, it becomes closed to canals going the other direction
 3198:     #checks the calaqueduct turnout to xvc is used, if not, xvc is open to fkc and kern river
+3199:     self.set_canal_direction(flow_type)
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_23 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3199, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3200:     #release flood flows to canals
+3201:     self.flood_operations(t, m, dowy, wateryear, self.millerton, flow_type, overflow_deliveries, wyt)
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flood_operations); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_22 = __Pyx_PyInt_From_long(__pyx_v_overflow_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_1 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[9] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_27, __pyx_v_flow_type, __pyx_t_22, __pyx_v_wyt};
    __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3201, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
    PyObject *__pyx_temp[9] = {__pyx_t_1, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_27, __pyx_v_flow_type, __pyx_t_22, __pyx_v_wyt};
    __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3201, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  {
    __pyx_t_2 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__pyx_t_1) {
      __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1); __pyx_t_1 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_6, __pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_t_27);
    PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_6, __pyx_t_27);
    __Pyx_INCREF(__pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_v_flow_type);
    PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_6, __pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_6, __pyx_t_22);
    __Pyx_INCREF(__pyx_v_wyt);
    __Pyx_GIVEREF(__pyx_v_wyt);
    PyTuple_SET_ITEM(__pyx_t_2, 7+__pyx_t_6, __pyx_v_wyt);
    __pyx_t_27 = 0;
    __pyx_t_22 = 0;
    __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3201, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3202:     self.set_canal_direction(flow_type)
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_4, function);
    }
  }
  __pyx_t_23 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3202, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3203:     #for canal in self.reservoir_canal[self.millerton.key]:
 3204:       #for cnt in self.canal_contract[canal.name]:
 3205:         #for socal_cont in [self.metropolitan, self.castaic, self.coachella]:
 3206:           #if cnt.name + '_flood' in socal_cont.deliveries['SOC']:
 3207:             #if socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] > 0.0:
 3208:               #socal_cont.deliveries['SOC']['tableA'][wateryear] += socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
 3209:               #self.pumping_turnback['SLS'] -= socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear]
 3210:               #socal_cont.deliveries['SOC'][cnt.name + '_flood'][wateryear] = 0.0
 3211:         #for socal_cont in [self.socal,]:
 3212:           #if cnt.name + '_flood' in socal_cont.deliveries:
 3213:             #if socal_cont.deliveries[cnt.name + '_flood'][wateryear] > 0.0:
 3214:               #socal_cont.deliveries['tableA'][wateryear] += socal_cont.deliveries[cnt.name + '_flood'][wateryear]
 3215:               #self.pumping_turnback['SLS'] -= socal_cont.deliveries[cnt.name + '_flood'][wateryear]
 3216:               #socal_cont.deliveries[cnt.name + '_flood'][wateryear] = 0.0
 3217: 
 3218: 
 3219: 
 3220: 
+3221:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3222:     for z in self.reservoir_canal[self.sanluis.key]:
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3222, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_2 = __pyx_t_4; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3222, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3222, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3222, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_4); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3222, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3222, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3222, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3223:       self.set_canal_direction(flow_type)
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_22 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
      __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_23);
      if (likely(__pyx_t_22)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_23, function);
      }
    }
    __pyx_t_4 = (__pyx_t_22) ? __Pyx_PyObject_Call2Args(__pyx_t_23, __pyx_t_22, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_v_flow_type);
    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3223, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 3224: 
+3225:       canal_size = self.canal_district_len[z.name]
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_22);
    __pyx_t_22 = 0;
+3226:       total_canal_demand = self.search_canal_demand(dowy, z, self.sanluis.key, z.name, 'normal', flow_type, wateryear,'delivery', {})
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_key); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3226, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_23);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_23, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[10] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_t_27, __pyx_t_4, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_1};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3226, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[10] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_t_27, __pyx_t_4, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_delivery, __pyx_t_1};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3226, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_z);
      __Pyx_GIVEREF(__pyx_v_z);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_z);
      __Pyx_GIVEREF(__pyx_t_27);
      PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_t_27);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_t_4);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_6, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_n_u_delivery);
      PyTuple_SET_ITEM(__pyx_t_8, 7+__pyx_t_6, __pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_8, 8+__pyx_t_6, __pyx_t_1);
      __pyx_t_27 = 0;
      __pyx_t_4 = 0;
      __pyx_t_1 = 0;
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_8, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_22);
    __pyx_t_22 = 0;
+3227:       available_flow = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3228:       for zz in total_canal_demand:
    if (likely(PyList_CheckExact(__pyx_v_total_canal_demand)) || PyTuple_CheckExact(__pyx_v_total_canal_demand)) {
      __pyx_t_22 = __pyx_v_total_canal_demand; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_v_total_canal_demand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3228, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3228, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3228, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3228, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_23); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3228, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3228, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        }
      } else {
        __pyx_t_23 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_23)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3228, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_23);
      }
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_23);
      __pyx_t_23 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3229:         available_flow += total_canal_demand[zz]
      __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3229, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_23); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3229, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_8);
      __pyx_t_8 = 0;
+3230:       excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, z, self.sanluis.key, z.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'delivery')
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3230, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_4 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[11] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_23, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[11] = {__pyx_t_4, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_23, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_delivery};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    } else
    #endif
    {
      __pyx_t_27 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_6, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_z);
      __Pyx_GIVEREF(__pyx_v_z);
      PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_6, __pyx_v_z);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_6, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_23);
      PyTuple_SET_ITEM(__pyx_t_27, 3+__pyx_t_6, __pyx_t_23);
      __Pyx_INCREF(__pyx_v_available_flow);
      __Pyx_GIVEREF(__pyx_v_available_flow);
      PyTuple_SET_ITEM(__pyx_t_27, 4+__pyx_t_6, __pyx_v_available_flow);
      __Pyx_INCREF(__pyx_v_canal_size);
      __Pyx_GIVEREF(__pyx_v_canal_size);
      PyTuple_SET_ITEM(__pyx_t_27, 5+__pyx_t_6, __pyx_v_canal_size);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_27, 6+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_27, 7+__pyx_t_6, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_27, 8+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_delivery);
      __Pyx_GIVEREF(__pyx_n_u_delivery);
      PyTuple_SET_ITEM(__pyx_t_27, 9+__pyx_t_6, __pyx_n_u_delivery);
      __pyx_t_1 = 0;
      __pyx_t_23 = 0;
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_27, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
      PyObject* sequence = __pyx_t_22;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3230, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_27 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_27 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_t_27);
      #else
      __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_27 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      #endif
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_23 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3230, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_23)->tp_iternext;
      index = 0; __pyx_t_8 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_8)) goto __pyx_L268_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_8);
      index = 1; __pyx_t_27 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_27)) goto __pyx_L268_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_27);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_23), 2) < 0) __PYX_ERR(0, 3230, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      goto __pyx_L269_unpacking_done;
      __pyx_L268_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3230, __pyx_L1_error)
      __pyx_L269_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_8);
    __pyx_t_8 = 0;
    __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_27);
    __pyx_t_27 = 0;
 3231: 
 3232:       #total_canal_demand = self.find_contract_demand(t, dowy, wateryear, z, a.key, z.name, 'normal',flow_type)
 3233:       #excess_water, unmet_demand = self.deliver_contracts(t, dowy, z, a.key, z.name, total_canal_demand, canal_size, wateryear, 'normal',flow_type)
+3234:       self.set_canal_direction(flow_type)
    __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_27))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_27);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_27);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_27, function);
      }
    }
    __pyx_t_22 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_27, __pyx_t_8, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_27, __pyx_v_flow_type);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3234, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3235: 
 3236:     #Flood releases	
 3237:     #article21 releases from san luis - state
+3238:     self.canal_contract['caa'] = [self.swpdelta]#for swp flood releases, only swp contracts are considered
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_22 = PyList_New(1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_22, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3238, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_caa, __pyx_t_22) < 0)) __PYX_ERR(0, 3238, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3239:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3240:     overflow_deliveries = 0#no flood deliveries to non-contractors in swp or cvp
  __pyx_v_overflow_deliveries = 0;
+3241:     self.set_canal_direction(flow_type)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_27 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_22 = (__pyx_t_27) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_27, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
  if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3241, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3242:     self.flood_operations(t, m, dowy, wateryear, self.sanluisstate, flow_type, overflow_deliveries, wyt)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flood_operations); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_27);
  __pyx_t_8 = __Pyx_PyInt_From_long(__pyx_v_overflow_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_23 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_23)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_23);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_27, __pyx_v_flow_type, __pyx_t_8, __pyx_v_wyt};
    __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_27, __pyx_v_flow_type, __pyx_t_8, __pyx_v_wyt};
    __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  } else
  #endif
  {
    __pyx_t_1 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__pyx_t_23) {
      __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_23); __pyx_t_23 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_6, __pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_t_27);
    PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_6, __pyx_t_27);
    __Pyx_INCREF(__pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_v_flow_type);
    PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_6, __pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_6, __pyx_t_8);
    __Pyx_INCREF(__pyx_v_wyt);
    __Pyx_GIVEREF(__pyx_v_wyt);
    PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_6, __pyx_v_wyt);
    __pyx_t_27 = 0;
    __pyx_t_8 = 0;
    __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_1, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3242, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3243: 
 3244:     #flood releases from san luis - federal
+3245:     self.canal_contract['caa'] = [self.cvpdelta, self.cvpexchange, self.crossvalley]
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyList_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_8, 0, __pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_8, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_8, 2, __pyx_t_1);
  __pyx_t_22 = 0;
  __pyx_t_2 = 0;
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_caa, __pyx_t_8) < 0)) __PYX_ERR(0, 3245, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3246:     self.set_canal_direction(flow_type)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_8 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3246, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3247:     self.flood_operations(t, m, dowy, wateryear, self.sanluisfederal, flow_type, overflow_deliveries, wyt)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_flood_operations); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_22 = __Pyx_PyInt_From_long(__pyx_v_overflow_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3247, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_27 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_27)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_27);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_2, __pyx_v_flow_type, __pyx_t_22, __pyx_v_wyt};
    __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3247, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
    PyObject *__pyx_temp[9] = {__pyx_t_27, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_t_2, __pyx_v_flow_type, __pyx_t_22, __pyx_v_wyt};
    __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3247, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  } else
  #endif
  {
    __pyx_t_23 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    if (__pyx_t_27) {
      __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_27); __pyx_t_27 = NULL;
    }
    __Pyx_INCREF(__pyx_v_t);
    __Pyx_GIVEREF(__pyx_v_t);
    PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_t);
    __Pyx_INCREF(__pyx_v_m);
    __Pyx_GIVEREF(__pyx_v_m);
    PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_m);
    __Pyx_INCREF(__pyx_v_dowy);
    __Pyx_GIVEREF(__pyx_v_dowy);
    PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_v_dowy);
    __Pyx_INCREF(__pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_v_wateryear);
    PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_v_wateryear);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_v_flow_type);
    PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_6, __pyx_v_flow_type);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_6, __pyx_t_22);
    __Pyx_INCREF(__pyx_v_wyt);
    __Pyx_GIVEREF(__pyx_v_wyt);
    PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_6, __pyx_v_wyt);
    __pyx_t_2 = 0;
    __pyx_t_22 = 0;
    __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_23, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3247, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3248:     self.set_canal_direction(flow_type)
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_23 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_23)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_23);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_8 = (__pyx_t_23) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_23, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
  if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3248, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3249:     self.canal_contract['caa'] = [self.swpdelta, self.cvpdelta, self.cvpexchange, self.crossvalley]#reset california aqueduct contracts to be all san luis contracts	
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cvpexchange); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_crossvalley); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_2 = PyList_New(4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_23);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_t_22);
  __pyx_t_8 = 0;
  __pyx_t_1 = 0;
  __pyx_t_23 = 0;
  __pyx_t_22 = 0;
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (unlikely(PyObject_SetItem(__pyx_t_22, __pyx_n_u_caa, __pyx_t_2) < 0)) __PYX_ERR(0, 3249, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3250: 
 3251:     #if self.sanluisstate.min_daily_uncontrolled > 0.0:
 3252:       #if self.metropolitan.annualdemand['SOC'] > self.metropolitan.projected_supply['SOC']['tableA']:
 3253:         #this_day_contract_deliveries = max(min(self.metropolitan.dailydemand_start['SOC'] - self.metropolitan.dailydemand['SOC'], self.metropolitan.deliveries['SOC']['tableA'][wateryear], self.metropolitan.annualdemand['SOC'] - self.metropolitan.projected_supply['SOC']['tableA']), 0.0)
 3254:         #self.metropolitan.deliveries['SOC']['tableA_flood'][wateryear] += this_day_contract_deliveries	
 3255:         #self.metropolitan.deliveries['SOC']['tableA'][wateryear] -= this_day_contract_deliveries
 3256: 
 3257: 	##Deliveries for banking
+3258:     flow_type = "recharge"
  __Pyx_INCREF(__pyx_n_u_recharge);
  __Pyx_DECREF_SET(__pyx_v_flow_type, __pyx_n_u_recharge);
+3259:     for a in [self.sanluis, self.millerton]:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluis); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_23 = PyTuple_New(2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3259, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_22);
  PyTuple_SET_ITEM(__pyx_t_23, 1, __pyx_t_22);
  __pyx_t_2 = 0;
  __pyx_t_22 = 0;
  __pyx_t_22 = __pyx_t_23; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
  for (;;) {
    if (__pyx_t_9 >= 2) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3259, __pyx_L1_error)
    #else
    __pyx_t_23 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3259, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_a, __pyx_t_23);
    __pyx_t_23 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3260:       for z in self.reservoir_canal[a.key]:
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3260, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3260, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3260, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3260, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3260, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3260, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3260, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3261:         self.set_canal_direction(flow_type)
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_23);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_23, function);
        }
      }
      __pyx_t_1 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_23, __pyx_t_8, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_23, __pyx_v_flow_type);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3261, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 3262: 
+3263:         canal_size = self.canal_district_len[z.name]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_23); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3263, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_8);
      __pyx_t_8 = 0;
+3264:         total_canal_demand = self.search_canal_demand(dowy, z, a.key, z.name, 'normal',flow_type,wateryear,'banking', {})
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3264, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_23);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_23, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[10] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_27, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_banking, __pyx_t_4};
        __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3264, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[10] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_t_1, __pyx_t_27, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_banking, __pyx_t_4};
        __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3264, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_25 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_6, __pyx_t_1);
        __Pyx_GIVEREF(__pyx_t_27);
        PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_6, __pyx_t_27);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_25, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_n_u_banking);
        PyTuple_SET_ITEM(__pyx_t_25, 7+__pyx_t_6, __pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_25, 8+__pyx_t_6, __pyx_t_4);
        __pyx_t_1 = 0;
        __pyx_t_27 = 0;
        __pyx_t_4 = 0;
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_25, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3264, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_canal_demand, __pyx_t_8);
      __pyx_t_8 = 0;
+3265:         available_flow = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_available_flow, __pyx_float_0_0);
+3266:         for zz in total_canal_demand:
      if (likely(PyList_CheckExact(__pyx_v_total_canal_demand)) || PyTuple_CheckExact(__pyx_v_total_canal_demand)) {
        __pyx_t_8 = __pyx_v_total_canal_demand; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_v_total_canal_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3266, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3266, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_23); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3266, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3266, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_23); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3266, __pyx_L1_error)
            #else
            __pyx_t_23 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3266, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            #endif
          }
        } else {
          __pyx_t_23 = __pyx_t_14(__pyx_t_8);
          if (unlikely(!__pyx_t_23)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3266, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_23);
        }
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_23);
        __pyx_t_23 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3267:           available_flow += total_canal_demand[zz]
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_v_total_canal_demand, __pyx_v_zz); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_t_23); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3267, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_25);
        __pyx_t_25 = 0;
+3268:         excess_water, unmet_demand = self.distribute_canal_deliveries(dowy, z, a.key, z.name, available_flow, canal_size, wateryear, 'normal', flow_type, 'banking')
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_a, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_27 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
        __pyx_t_27 = PyMethod_GET_SELF(__pyx_t_25);
        if (likely(__pyx_t_27)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
          __Pyx_INCREF(__pyx_t_27);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_25, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_25)) {
        PyObject *__pyx_temp[11] = {__pyx_t_27, __pyx_v_dowy, __pyx_v_z, __pyx_t_23, __pyx_t_4, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking};
        __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
        PyObject *__pyx_temp[11] = {__pyx_t_27, __pyx_v_dowy, __pyx_v_z, __pyx_t_23, __pyx_t_4, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_banking};
        __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else
      #endif
      {
        __pyx_t_1 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (__pyx_t_27) {
          __Pyx_GIVEREF(__pyx_t_27); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_27); __pyx_t_27 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_6, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_6, __pyx_v_z);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_6, __pyx_t_4);
        __Pyx_INCREF(__pyx_v_available_flow);
        __Pyx_GIVEREF(__pyx_v_available_flow);
        PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_6, __pyx_v_available_flow);
        __Pyx_INCREF(__pyx_v_canal_size);
        __Pyx_GIVEREF(__pyx_v_canal_size);
        PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_6, __pyx_v_canal_size);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_1, 7+__pyx_t_6, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_1, 8+__pyx_t_6, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_n_u_banking);
        __Pyx_GIVEREF(__pyx_n_u_banking);
        PyTuple_SET_ITEM(__pyx_t_1, 9+__pyx_t_6, __pyx_n_u_banking);
        __pyx_t_23 = 0;
        __pyx_t_4 = 0;
        __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_1, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_8))) || (PyList_CheckExact(__pyx_t_8))) {
        PyObject* sequence = __pyx_t_8;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 3268, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_25 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_25 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_1 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_25);
        __Pyx_INCREF(__pyx_t_1);
        #else
        __pyx_t_25 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_1 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_4)->tp_iternext;
        index = 0; __pyx_t_25 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_25)) goto __pyx_L276_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_25);
        index = 1; __pyx_t_1 = __pyx_t_10(__pyx_t_4); if (unlikely(!__pyx_t_1)) goto __pyx_L276_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_1);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_4), 2) < 0) __PYX_ERR(0, 3268, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        goto __pyx_L277_unpacking_done;
        __pyx_L276_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 3268, __pyx_L1_error)
        __pyx_L277_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_excess_water, __pyx_t_25);
      __pyx_t_25 = 0;
      __Pyx_XDECREF_SET(__pyx_v_unmet_demand, __pyx_t_1);
      __pyx_t_1 = 0;
 3269: 
+3270:     self.set_canal_direction(flow_type)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_direction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = NULL;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_8)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_22 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_8, __pyx_v_flow_type) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_v_flow_type);
  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 3271: 
 3272:     #swp/cvp_pump - find maximum pumping levels based on space in san luis(inputs for the northern model)
 3273: 	#swp/cvp_release -  toggle for 'max pumping' releases, based on space in san luis (inputs for the northern model)
 3274: 	#take direct recharge deliveries and 'absorb' them into the groundwater, clearing way for more space in the recharge basins
+3275:     for k in self.waterbank_list:#at water banks
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3275, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3275, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3275, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3275, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3275, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3275, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3275, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3275, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3276:       k.sum_storage()
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_sum_storage); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_22 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3276, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3277:       k.absorb_storage()
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3277, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_22 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3277, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3278:     for k in self.leiu_list:#at in-leiu district banks (some also have direct recharge capacity, in addition to in-leiu)
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3278, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_22 = __pyx_t_2; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3278, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3278, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3278, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3278, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3278, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_k, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3279:       k.absorb_storage()
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_k, __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_2 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3280:     for x in self.district_list:#at in-district recharge facilities
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3280, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3280, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3280, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3280, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3280, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3280, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3280, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3281:       if x.current_recharge_storage > 0.0:
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_current_recharge_storage); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_22, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3281, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3281, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_3) {
/* … */
    }
+3282:         x.absorb_storage()
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_absorb_storage); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_1 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
        __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_22);
        if (likely(__pyx_t_1)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_22, function);
        }
      }
      __pyx_t_8 = (__pyx_t_1) ? __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_t_1) : __Pyx_PyObject_CallNoArg(__pyx_t_22);
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3282, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 3283: 
 3284:     # kill_permanent = 0
 3285:     # if kill_permanent == 1:
 3286:     #   for x in self.private_list:
 3287:     #     for xx in x.district_list:
 3288:     #       x.find_unmet_et(xx, wateryear, dowy)
 3289: 
 3290: 
 3291: 
+3292:     requester_list = [self.cawelo, self.ID4, self.rosedale]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_cawelo); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ID4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3292, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_8);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_22);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_t_22);
  __pyx_t_2 = 0;
  __pyx_t_8 = 0;
  __pyx_t_22 = 0;
  __Pyx_DECREF_SET(__pyx_v_requester_list, ((PyObject*)__pyx_t_1));
  __pyx_t_1 = 0;
+3293:     for requester in requester_list:
  __pyx_t_1 = __pyx_v_requester_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
  for (;;) {
    if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_22 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3293, __pyx_L1_error)
    #else
    __pyx_t_22 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3293, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_requester, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3294:       for y in [self.kernriver, self.swpdelta]:
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3294, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_22);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_22);
    __Pyx_GIVEREF(__pyx_t_8);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_8);
    __pyx_t_22 = 0;
    __pyx_t_8 = 0;
    __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (__pyx_t_13 >= 2) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3294, __pyx_L1_error)
      #else
      __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3294, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3295:         next_year_carryover, this_year_carryover = requester.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_t); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_7 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_22);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_22, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_4, __pyx_t_23, __pyx_t_27, __pyx_t_25, __pyx_t_5, __pyx_t_26};
        __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[9] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear, __pyx_t_4, __pyx_t_23, __pyx_t_27, __pyx_t_25, __pyx_t_5, __pyx_t_26};
        __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      } else
      #endif
      {
        __pyx_t_21 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_4);
        PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_6, __pyx_t_4);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_27);
        PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_6, __pyx_t_27);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_6, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_6, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_6, __pyx_t_26);
        __pyx_t_4 = 0;
        __pyx_t_23 = 0;
        __pyx_t_27 = 0;
        __pyx_t_25 = 0;
        __pyx_t_5 = 0;
        __pyx_t_26 = 0;
        __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_21, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
        PyObject* sequence = __pyx_t_2;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 3295, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_21 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_22 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_21 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_21);
        #else
        __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_21 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        #endif
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_26 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3295, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_26)->tp_iternext;
        index = 0; __pyx_t_22 = __pyx_t_10(__pyx_t_26); if (unlikely(!__pyx_t_22)) goto __pyx_L289_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_22);
        index = 1; __pyx_t_21 = __pyx_t_10(__pyx_t_26); if (unlikely(!__pyx_t_21)) goto __pyx_L289_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_21);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_26), 2) < 0) __PYX_ERR(0, 3295, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        goto __pyx_L290_unpacking_done;
        __pyx_L289_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 3295, __pyx_L1_error)
        __pyx_L290_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_22);
      __pyx_t_22 = 0;
      __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_21);
      __pyx_t_21 = 0;
+3296:       self.buenavista.paper_balance['tableA'] -= requester.projected_supply['kern']
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_INCREF(__pyx_n_u_tableA);
    __pyx_t_28 = __pyx_n_u_tableA;
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_t_28); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_n_u_kern); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __pyx_t_21 = PyNumber_InPlaceSubtract(__pyx_t_8, __pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_28, __pyx_t_21) < 0)) __PYX_ERR(0, 3296, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3297:       self.buenavista.paper_balance['kern'] += requester.projected_supply['kern']
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_INCREF(__pyx_n_u_kern);
    __pyx_t_28 = __pyx_n_u_kern;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_t_28); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_22, __pyx_n_u_kern); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_28, __pyx_t_22) < 0)) __PYX_ERR(0, 3297, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3298:       requester.paper_balance['tableA'] += requester.projected_supply['kern']
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_INCREF(__pyx_n_u_tableA);
    __pyx_t_28 = __pyx_n_u_tableA;
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_t_28); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_kern); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_22, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_28, __pyx_t_8) < 0)) __PYX_ERR(0, 3298, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3299:       requester.paper_balance['kern']  -= requester.projected_supply['kern']
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_paper_balance); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_INCREF(__pyx_n_u_kern);
    __pyx_t_28 = __pyx_n_u_kern;
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_21, __pyx_t_28); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_kern); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_t_8, __pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_t_28, __pyx_t_2) < 0)) __PYX_ERR(0, 3299, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_28); __pyx_t_28 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3300:       for y in [self.kernriver, self.swpdelta]:
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3300, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_GIVEREF(__pyx_t_21);
    PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_21);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_2);
    __pyx_t_21 = 0;
    __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    for (;;) {
      if (__pyx_t_13 >= 2) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3300, __pyx_L1_error)
      #else
      __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3300, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      #endif
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3301:         next_year_carryover, this_year_carryover = requester.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_requester, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3301, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_4 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
        __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_21);
        if (likely(__pyx_t_4)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
          __Pyx_INCREF(__pyx_t_4);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_21, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_21)) {
        PyObject *__pyx_temp[9] = {__pyx_t_4, __pyx_v_t, __pyx_v_wateryear, __pyx_t_26, __pyx_t_5, __pyx_t_25, __pyx_t_8, __pyx_t_27, __pyx_t_23};
        __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) {
        PyObject *__pyx_temp[9] = {__pyx_t_4, __pyx_v_t, __pyx_v_wateryear, __pyx_t_26, __pyx_t_5, __pyx_t_25, __pyx_t_8, __pyx_t_27, __pyx_t_23};
        __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_4) {
          __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_t_26);
        __Pyx_GIVEREF(__pyx_t_5);
        PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_t_5);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_27);
        PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_t_27);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_6, __pyx_t_23);
        __pyx_t_26 = 0;
        __pyx_t_5 = 0;
        __pyx_t_25 = 0;
        __pyx_t_8 = 0;
        __pyx_t_27 = 0;
        __pyx_t_23 = 0;
        __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_7, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
        PyObject* sequence = __pyx_t_22;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 3301, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_21 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_21 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_21);
        __Pyx_INCREF(__pyx_t_7);
        #else
        __pyx_t_21 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_23 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3301, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_23)->tp_iternext;
        index = 0; __pyx_t_21 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_21)) goto __pyx_L293_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_21);
        index = 1; __pyx_t_7 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_7)) goto __pyx_L293_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_23), 2) < 0) __PYX_ERR(0, 3301, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        goto __pyx_L294_unpacking_done;
        __pyx_L293_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 3301, __pyx_L1_error)
        __pyx_L294_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_21);
      __pyx_t_21 = 0;
      __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_7);
      __pyx_t_7 = 0;
 3302: 
+3303:     for y in [self.kernriver, self.swpdelta]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (__pyx_t_9 >= 2) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3303, __pyx_L1_error)
    #else
    __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3303, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    #endif
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3304:       next_year_carryover, this_year_carryover = self.buenavista.update_balance(t, wateryear, y.storage_pool[t], y.allocation[t], y.available_water[t], y.name, y.tot_carryover, y.type)
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_update_balance); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_allocation); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_available_water); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3304, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_5 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_wateryear, __pyx_t_21, __pyx_t_23, __pyx_t_27, __pyx_t_1, __pyx_t_8, __pyx_t_25};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_wateryear, __pyx_t_21, __pyx_t_23, __pyx_t_27, __pyx_t_1, __pyx_t_8, __pyx_t_25};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    } else
    #endif
    {
      __pyx_t_26 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_6, __pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_t_21);
      PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_6, __pyx_t_21);
      __Pyx_GIVEREF(__pyx_t_23);
      PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_6, __pyx_t_23);
      __Pyx_GIVEREF(__pyx_t_27);
      PyTuple_SET_ITEM(__pyx_t_26, 4+__pyx_t_6, __pyx_t_27);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_26, 5+__pyx_t_6, __pyx_t_1);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_26, 6+__pyx_t_6, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_25);
      PyTuple_SET_ITEM(__pyx_t_26, 7+__pyx_t_6, __pyx_t_25);
      __pyx_t_21 = 0;
      __pyx_t_23 = 0;
      __pyx_t_27 = 0;
      __pyx_t_1 = 0;
      __pyx_t_8 = 0;
      __pyx_t_25 = 0;
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_26, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
      PyObject* sequence = __pyx_t_22;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3304, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_26 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_26);
      #else
      __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_26 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      #endif
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_25 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_25)->tp_iternext;
      index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_25); if (unlikely(!__pyx_t_7)) goto __pyx_L297_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      index = 1; __pyx_t_26 = __pyx_t_10(__pyx_t_25); if (unlikely(!__pyx_t_26)) goto __pyx_L297_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_26);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_25), 2) < 0) __PYX_ERR(0, 3304, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      goto __pyx_L298_unpacking_done;
      __pyx_L297_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3304, __pyx_L1_error)
      __pyx_L298_unpacking_done:;
    }
    __Pyx_XDECREF_SET(__pyx_v_next_year_carryover, __pyx_t_7);
    __pyx_t_7 = 0;
    __Pyx_XDECREF_SET(__pyx_v_this_year_carryover, __pyx_t_26);
    __pyx_t_26 = 0;
 3305: 
 3306: 
 3307:     #reservoir class water balance do not include releases for irrigation/recharge deliveries
 3308: 	#update storage based on total contract deliveries each day
+3309:     for y in self.contract_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3309, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_22 = __pyx_t_2; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3309, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3309, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3309, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3309, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3309, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3309, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3310:       reservoir = self.contract_reservoir[y.key]
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_reservoir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_key); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_26); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_7);
    __pyx_t_7 = 0;
+3311:       if t < (self.T - 1):
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_26 = __Pyx_PyInt_SubtractObjC(__pyx_t_7, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_t, __pyx_t_26, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3311, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3311, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_3) {
/* … */
    }
+3312:         reservoir.S[t+1] -= y.daily_deliveries
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_26 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_26); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_daily_deliveries); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_t_25); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_26, __pyx_t_8) < 0)) __PYX_ERR(0, 3312, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 3313: 
+3314:       y.daily_deliveries = 0.0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_daily_deliveries, __pyx_float_0_0) < 0) __PYX_ERR(0, 3314, __pyx_L1_error)
+3315:     if t < (self.T -1):
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_t_22, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3315, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_22 = PyObject_RichCompare(__pyx_v_t, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3315, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L302;
  }
+3316:       swp_pump, cvp_pump, = self.find_san_luis_space(t, 6680.0*cfs_tafd, 4430.0*cfs_tafd)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_san_luis_space); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_8 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_26); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_26, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __pyx_t_25 = PyNumber_Multiply(__pyx_float_4430_0, __pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3316, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
    __pyx_t_26 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_26 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_26)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_26);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[4] = {__pyx_t_26, __pyx_v_t, __pyx_t_8, __pyx_t_25};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[4] = {__pyx_t_26, __pyx_v_t, __pyx_t_8, __pyx_t_25};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_26) {
        __Pyx_GIVEREF(__pyx_t_26); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_26); __pyx_t_26 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_GIVEREF(__pyx_t_8);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_t_8);
      __Pyx_GIVEREF(__pyx_t_25);
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_t_25);
      __pyx_t_8 = 0;
      __pyx_t_25 = 0;
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_2, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_22))) || (PyList_CheckExact(__pyx_t_22))) {
      PyObject* sequence = __pyx_t_22;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 3316, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_2 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_2);
      #else
      __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_25 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3316, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_25)->tp_iternext;
      index = 0; __pyx_t_7 = __pyx_t_10(__pyx_t_25); if (unlikely(!__pyx_t_7)) goto __pyx_L303_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_7);
      index = 1; __pyx_t_2 = __pyx_t_10(__pyx_t_25); if (unlikely(!__pyx_t_2)) goto __pyx_L303_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_25), 2) < 0) __PYX_ERR(0, 3316, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      goto __pyx_L304_unpacking_done;
      __pyx_L303_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 3316, __pyx_L1_error)
      __pyx_L304_unpacking_done:;
    }
    __pyx_v_swp_pump = __pyx_t_7;
    __pyx_t_7 = 0;
    __pyx_v_cvp_pump = __pyx_t_2;
    __pyx_t_2 = 0;
 3317:     else:
+3318:       swp_pump = 0.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_swp_pump = __pyx_float_0_0;
+3319:       cvp_pump = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_cvp_pump = __pyx_float_0_0;
  }
  __pyx_L302:;
 3320: 
 3321: 	  ####ASSUMPTION THAT ANY DEMAND NOT MET BY SURFACE WATER IS MET THROUGH PUMPING
 3322: 	  ####doesn't do anything in the model (no GW connection), but can change this assumption/link to other models
+3323:     for x in self.district_list:
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3323, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3323, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3323, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3323, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3323, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3323, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3324:       x.annual_private_pumping = x.dailydemand[0]
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_22, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_annual_private_pumping, __pyx_t_7) < 0) __PYX_ERR(0, 3324, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3325:     for x in self.private_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_7 = __pyx_t_2; __Pyx_INCREF(__pyx_t_7); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3325, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3325, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3325, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_7, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_12(__pyx_t_7);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3325, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3326:       for xx in x.district_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_22 = __pyx_t_2; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3326, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3326, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3326, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3326, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3326, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3327:         x.annual_private_pumping[xx] = x.dailydemand[xx]
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_private_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_xx, __pyx_t_25) < 0)) __PYX_ERR(0, 3327, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3328:     for x in self.city_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3328, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_22 = __pyx_t_7; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3328, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3328, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_7); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3328, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3328, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3328, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3329:       for xx in x.district_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3329, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_25 = __pyx_t_7; __Pyx_INCREF(__pyx_t_25); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3329, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_14 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3329, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_25))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_25)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3329, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3329, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_7); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3329, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3329, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_14(__pyx_t_25);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3329, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3330:         x.annual_private_pumping[xx] = x.dailydemand[xx]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3330, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3330, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annual_private_pumping); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3330, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_xx, __pyx_t_2) < 0)) __PYX_ERR(0, 3330, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3331: 	####FOR RESULTS-OUTPUT (not output to northern model, but output for plots)
+3332:     for x in self.district_list:
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3332, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_25 = __pyx_t_22; __Pyx_INCREF(__pyx_t_25); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3332, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_12 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3332, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_25))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_25)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3332, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_25, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3332, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3332, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_25, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3332, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_25);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3332, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3333:       x.accounting_full(t, wateryear)
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3333, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_22);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3333, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_22);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_8, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3334:       for y in self.contract_list:
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3334, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
      __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3334, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3334, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3334, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3334, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3334, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3334, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        }
      } else {
        __pyx_t_22 = __pyx_t_14(__pyx_t_2);
        if (unlikely(!__pyx_t_22)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3334, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_22);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3335:         #from individual contracts - paper balance, carryover storage, allocations, and deliveries (irrigation) - recalfews_srcs daily values
+3336:         y.accounting(t, da, m, wateryear, x.deliveries[y.name][wateryear], x.carryover[y.name], x.turnback_pool[y.name], x.deliveries[y.name + '_flood'][wateryear] + x.deliveries[y.name + '_flood_irrigation'][wateryear])
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_accounting); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_26); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_21 = PyNumber_Add(__pyx_t_7, __pyx_n_u_flood); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_21); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_wateryear); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyNumber_Add(__pyx_t_1, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Add(__pyx_t_21, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3336, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_26, __pyx_t_27, __pyx_t_23, __pyx_t_1};
        __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3336, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[9] = {__pyx_t_5, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_26, __pyx_t_27, __pyx_t_23, __pyx_t_1};
        __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3336, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      {
        __pyx_t_21 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3336, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        if (__pyx_t_5) {
          __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_5); __pyx_t_5 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_INCREF(__pyx_v_da);
        __Pyx_GIVEREF(__pyx_v_da);
        PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_6, __pyx_v_da);
        __Pyx_INCREF(__pyx_v_m);
        __Pyx_GIVEREF(__pyx_v_m);
        PyTuple_SET_ITEM(__pyx_t_21, 2+__pyx_t_6, __pyx_v_m);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_21, 3+__pyx_t_6, __pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_t_26);
        PyTuple_SET_ITEM(__pyx_t_21, 4+__pyx_t_6, __pyx_t_26);
        __Pyx_GIVEREF(__pyx_t_27);
        PyTuple_SET_ITEM(__pyx_t_21, 5+__pyx_t_6, __pyx_t_27);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_21, 6+__pyx_t_6, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_21, 7+__pyx_t_6, __pyx_t_1);
        __pyx_t_26 = 0;
        __pyx_t_27 = 0;
        __pyx_t_23 = 0;
        __pyx_t_1 = 0;
        __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_21, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3336, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3337:     for x in self.private_list:
  __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3337, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_25);
  if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
    __pyx_t_2 = __pyx_t_25; __Pyx_INCREF(__pyx_t_2); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3337, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3337, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_25 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_25); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3337, __pyx_L1_error)
        #else
        __pyx_t_25 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3337, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_9); __Pyx_INCREF(__pyx_t_25); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3337, __pyx_L1_error)
        #else
        __pyx_t_25 = PySequence_ITEM(__pyx_t_2, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3337, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        #endif
      }
    } else {
      __pyx_t_25 = __pyx_t_12(__pyx_t_2);
      if (unlikely(!__pyx_t_25)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3337, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_25);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_25);
    __pyx_t_25 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3338:       x.accounting_full(t, wateryear)
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3338, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_22);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_22, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3338, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_25);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
      PyObject *__pyx_temp[3] = {__pyx_t_8, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3338, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_25);
    } else
    #endif
    {
      __pyx_t_21 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3338, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_21, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_21, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_21, 1+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_21, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3338, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3339:       for y in self.contract_list:
    __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3339, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
      __pyx_t_22 = __pyx_t_25; __Pyx_INCREF(__pyx_t_22); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_14 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3339, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_22))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_25 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3339, __pyx_L1_error)
          #else
          __pyx_t_25 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3339, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3339, __pyx_L1_error)
          #else
          __pyx_t_25 = PySequence_ITEM(__pyx_t_22, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3339, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          #endif
        }
      } else {
        __pyx_t_25 = __pyx_t_14(__pyx_t_22);
        if (unlikely(!__pyx_t_25)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3339, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_25);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_25);
      __pyx_t_25 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3340:         for xx in x.district_list:
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3340, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
        __pyx_t_21 = __pyx_t_25; __Pyx_INCREF(__pyx_t_21); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_16 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3340, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_21))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_21)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3340, __pyx_L1_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3340, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3340, __pyx_L1_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3340, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          }
        } else {
          __pyx_t_25 = __pyx_t_16(__pyx_t_21);
          if (unlikely(!__pyx_t_25)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3340, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_25);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_25);
        __pyx_t_25 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3341:           y.accounting(t, da, m, wateryear, x.deliveries[xx][y.name][wateryear], x.carryover[xx][y.name], x.turnback_pool[xx][y.name], x.deliveries[xx][y.name + '_flood'][wateryear] + x.deliveries[xx][y.name + '_flood_irrigation'][wateryear])
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_accounting); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_27); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_7 = PyNumber_Add(__pyx_t_27, __pyx_n_u_flood); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_7); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_4 = PyNumber_Add(__pyx_t_27, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_4); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = PyNumber_Add(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3341, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[9] = {__pyx_t_4, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_1, __pyx_t_26, __pyx_t_5, __pyx_t_27};
          __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3341, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[9] = {__pyx_t_4, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_1, __pyx_t_26, __pyx_t_5, __pyx_t_27};
          __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3341, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        } else
        #endif
        {
          __pyx_t_7 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_da);
          __Pyx_GIVEREF(__pyx_v_da);
          PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_v_da);
          __Pyx_INCREF(__pyx_v_m);
          __Pyx_GIVEREF(__pyx_v_m);
          PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_6, __pyx_v_m);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_6, __pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_26);
          PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_6, __pyx_t_26);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_6, __pyx_t_5);
          __Pyx_GIVEREF(__pyx_t_27);
          PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_6, __pyx_t_27);
          __pyx_t_1 = 0;
          __pyx_t_26 = 0;
          __pyx_t_5 = 0;
          __pyx_t_27 = 0;
          __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_7, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3341, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3342:     for x in self.city_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_22 = __pyx_t_2; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3342, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3342, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3342, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_2); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3342, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3342, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3342, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3343:       x.accounting_full(t, wateryear)
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_accounting_full); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3343, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_25 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_21))) {
      __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_21);
      if (likely(__pyx_t_25)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_21);
        __Pyx_INCREF(__pyx_t_25);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_21, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_21)) {
      PyObject *__pyx_temp[3] = {__pyx_t_25, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_21)) {
      PyObject *__pyx_temp[3] = {__pyx_t_25, __pyx_v_t, __pyx_v_wateryear};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_21, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_GOTREF(__pyx_t_2);
    } else
    #endif
    {
      __pyx_t_8 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (__pyx_t_25) {
        __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_25); __pyx_t_25 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_21, __pyx_t_8, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3343, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3344:       for y in self.contract_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_21 = __pyx_t_2; __Pyx_INCREF(__pyx_t_21); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3344, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_14 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3344, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_21))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3344, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_21, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3344, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_21, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3344, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_14(__pyx_t_21);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3344, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3345:         for xx in x.district_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_15 = 0;
        __pyx_t_16 = NULL;
      } else {
        __pyx_t_15 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3345, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3345, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_16)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3345, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3345, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3345, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_16(__pyx_t_8);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3345, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3346:           y.accounting(t, da, m, wateryear, x.deliveries[xx][y.name][wateryear], x.carryover[xx][y.name], x.turnback_pool[xx][y.name], x.deliveries[xx][y.name + '_flood'][wateryear] + x.deliveries[xx][y.name + '_flood_irrigation'][wateryear])
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_accounting); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_5); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_turnback_pool); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_4 = PyNumber_Add(__pyx_t_5, __pyx_n_u_flood); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_23 = PyNumber_Add(__pyx_t_5, __pyx_n_u_flood_irrigation); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wateryear); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Add(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3346, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_23 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
          __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_25);
          if (likely(__pyx_t_23)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
            __Pyx_INCREF(__pyx_t_23);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_25, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_7, __pyx_t_26, __pyx_t_1, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[9] = {__pyx_t_23, __pyx_v_t, __pyx_v_da, __pyx_v_m, __pyx_v_wateryear, __pyx_t_7, __pyx_t_26, __pyx_t_1, __pyx_t_5};
          __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 8+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_4 = PyTuple_New(8+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3346, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (__pyx_t_23) {
            __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_23); __pyx_t_23 = NULL;
          }
          __Pyx_INCREF(__pyx_v_t);
          __Pyx_GIVEREF(__pyx_v_t);
          PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_v_t);
          __Pyx_INCREF(__pyx_v_da);
          __Pyx_GIVEREF(__pyx_v_da);
          PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_da);
          __Pyx_INCREF(__pyx_v_m);
          __Pyx_GIVEREF(__pyx_v_m);
          PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_v_m);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_6, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_26);
          PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_6, __pyx_t_26);
          __Pyx_GIVEREF(__pyx_t_1);
          PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_6, __pyx_t_1);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_4, 7+__pyx_t_6, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_26 = 0;
          __pyx_t_1 = 0;
          __pyx_t_5 = 0;
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3346, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        }
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3347:     #update individual accounts in groundwater banks
+3348:     for w in self.waterbank_list:
  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3348, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
    __pyx_t_21 = __pyx_t_22; __Pyx_INCREF(__pyx_t_21); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3348, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_12 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3348, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_21))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_21)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3348, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3348, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3348, __pyx_L1_error)
        #else
        __pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3348, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        #endif
      }
    } else {
      __pyx_t_22 = __pyx_t_12(__pyx_t_21);
      if (unlikely(!__pyx_t_22)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3348, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_22);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_22);
    __pyx_t_22 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3349:       w.accounting(t, m, da, wateryear)
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_accounting); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3349, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear};
      __pyx_t_22 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_22);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[5] = {__pyx_t_2, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear};
      __pyx_t_22 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_22);
    } else
    #endif
    {
      __pyx_t_25 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_22 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_25, NULL); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3349, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3350:     for w in self.leiu_list:
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3350, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
    __pyx_t_22 = __pyx_t_21; __Pyx_INCREF(__pyx_t_22); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3350, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __pyx_t_12 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3350, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_22))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_21 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3350, __pyx_L1_error)
        #else
        __pyx_t_21 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3350, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3350, __pyx_L1_error)
        #else
        __pyx_t_21 = PySequence_ITEM(__pyx_t_22, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3350, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        #endif
      }
    } else {
      __pyx_t_21 = __pyx_t_12(__pyx_t_22);
      if (unlikely(!__pyx_t_21)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3350, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_21);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_21);
    __pyx_t_21 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+3351:       w.accounting_leiubank(t, m, da, wateryear)
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_accounting_leiubank); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3351, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_25 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_25)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_25);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[5] = {__pyx_t_25, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear};
      __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3351, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_GOTREF(__pyx_t_21);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
      PyObject *__pyx_temp[5] = {__pyx_t_25, __pyx_v_t, __pyx_v_m, __pyx_v_da, __pyx_v_wateryear};
      __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3351, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_GOTREF(__pyx_t_21);
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3351, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_25) {
        __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_25); __pyx_t_25 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_m);
      __Pyx_GIVEREF(__pyx_v_m);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_v_m);
      __Pyx_INCREF(__pyx_v_da);
      __Pyx_GIVEREF(__pyx_v_da);
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_6, __pyx_v_da);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_6, __pyx_v_wateryear);
      __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_2, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3351, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
 3352: 
 3353:     ##Reset contracts for the next water year, distribute unused contract water into carryover flows/ next year's contract allocation
+3354:     tot_paper = 0.0
  __pyx_v_tot_paper = 0.0;
+3355:     tot_turnback = 0.0
  __pyx_v_tot_turnback = 0.0;
+3356:     if m == 9 and da == 30:
  __pyx_t_22 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  if (__pyx_t_11) {
  } else {
    __pyx_t_3 = __pyx_t_11;
    goto __pyx_L336_bool_binop_done;
  }
  __pyx_t_22 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_30, 30, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
  __pyx_t_3 = __pyx_t_11;
  __pyx_L336_bool_binop_done:;
  if (__pyx_t_3) {
/* … */
  }
+3357:       for y in self.contract_list:
    __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3357, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
      __pyx_t_21 = __pyx_t_22; __Pyx_INCREF(__pyx_t_21); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3357, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_12 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3357, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_21))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3357, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3357, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_22); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3357, __pyx_L1_error)
          #else
          __pyx_t_22 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3357, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          #endif
        }
      } else {
        __pyx_t_22 = __pyx_t_12(__pyx_t_21);
        if (unlikely(!__pyx_t_22)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3357, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_22);
      }
      __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_22);
      __pyx_t_22 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3358:         lastYearCarryover = y.tot_carryover
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3358, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __Pyx_XDECREF_SET(__pyx_v_lastYearCarryover, __pyx_t_22);
      __pyx_t_22 = 0;
+3359:         y.tot_carryover = 0.0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover, __pyx_float_0_0) < 0) __PYX_ERR(0, 3359, __pyx_L1_error)
+3360:         y.tot_new_alloc = 0.0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_float_0_0) < 0) __PYX_ERR(0, 3360, __pyx_L1_error)
+3361:         for x in self.district_list:
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3361, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
        __pyx_t_8 = __pyx_t_22; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3361, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3361, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3361, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3361, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_22); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3361, __pyx_L1_error)
            #else
            __pyx_t_22 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3361, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            #endif
          }
        } else {
          __pyx_t_22 = __pyx_t_14(__pyx_t_8);
          if (unlikely(!__pyx_t_22)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3361, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_22);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_22);
        __pyx_t_22 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3362:           use_contract = 0
        __pyx_v_use_contract = 0;
+3363:           for yy in x.contract_list:
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3363, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        if (likely(PyList_CheckExact(__pyx_t_22)) || PyTuple_CheckExact(__pyx_t_22)) {
          __pyx_t_2 = __pyx_t_22; __Pyx_INCREF(__pyx_t_2); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_22); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3363, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3363, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_22 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3363, __pyx_L1_error)
              #else
              __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3363, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_22 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_15); __Pyx_INCREF(__pyx_t_22); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3363, __pyx_L1_error)
              #else
              __pyx_t_22 = PySequence_ITEM(__pyx_t_2, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3363, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              #endif
            }
          } else {
            __pyx_t_22 = __pyx_t_16(__pyx_t_2);
            if (unlikely(!__pyx_t_22)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3363, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_22);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_22);
          __pyx_t_22 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3364:             if yy == y.name:
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3364, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_25 = PyObject_RichCompare(__pyx_v_yy, __pyx_t_22, Py_EQ); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3364, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3364, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          if (__pyx_t_3) {
/* … */
          }
+3365:               use_contract = 1
            __pyx_v_use_contract = 1;
+3366:           if use_contract == 1:
        __pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
        if (__pyx_t_3) {
/* … */
        }
+3367:             new_alloc, carryover = x.calc_carryover(y.storage_pool[t], wateryear, y.type, y.name)
          __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_1 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
            __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_25);
            if (likely(__pyx_t_1)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
              __Pyx_INCREF(__pyx_t_1);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_25, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_25)) {
            PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_t_4, __pyx_v_wateryear, __pyx_t_22, __pyx_t_5};
            __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
            PyObject *__pyx_temp[5] = {__pyx_t_1, __pyx_t_4, __pyx_v_wateryear, __pyx_t_22, __pyx_t_5};
            __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          } else
          #endif
          {
            __pyx_t_26 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            if (__pyx_t_1) {
              __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_26, 0, __pyx_t_1); __pyx_t_1 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_26, 0+__pyx_t_6, __pyx_t_4);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_26, 1+__pyx_t_6, __pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_26, 2+__pyx_t_6, __pyx_t_22);
            __Pyx_GIVEREF(__pyx_t_5);
            PyTuple_SET_ITEM(__pyx_t_26, 3+__pyx_t_6, __pyx_t_5);
            __pyx_t_4 = 0;
            __pyx_t_22 = 0;
            __pyx_t_5 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_26, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          }
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_2))) || (PyList_CheckExact(__pyx_t_2))) {
            PyObject* sequence = __pyx_t_2;
            Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
            if (unlikely(size != 2)) {
              if (size > 2) __Pyx_RaiseTooManyValuesError(2);
              else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
              __PYX_ERR(0, 3367, __pyx_L1_error)
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            if (likely(PyTuple_CheckExact(sequence))) {
              __pyx_t_25 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_26 = PyTuple_GET_ITEM(sequence, 1); 
            } else {
              __pyx_t_25 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_26 = PyList_GET_ITEM(sequence, 1); 
            }
            __Pyx_INCREF(__pyx_t_25);
            __Pyx_INCREF(__pyx_t_26);
            #else
            __pyx_t_25 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_26 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            #endif
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3367, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_10 = Py_TYPE(__pyx_t_5)->tp_iternext;
            index = 0; __pyx_t_25 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_25)) goto __pyx_L346_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_25);
            index = 1; __pyx_t_26 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_26)) goto __pyx_L346_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_26);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_5), 2) < 0) __PYX_ERR(0, 3367, __pyx_L1_error)
            __pyx_t_10 = NULL;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            goto __pyx_L347_unpacking_done;
            __pyx_L346_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_10 = NULL;
            if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
            __PYX_ERR(0, 3367, __pyx_L1_error)
            __pyx_L347_unpacking_done:;
          }
          __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_25);
          __pyx_t_25 = 0;
          __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_26);
          __pyx_t_26 = 0;
+3368:             y.tot_new_alloc += new_alloc
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_v_new_alloc); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_t_26) < 0) __PYX_ERR(0, 3368, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3369:             y.tot_carryover += carryover
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover, __pyx_t_2) < 0) __PYX_ERR(0, 3369, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3370: 
 3371: 
+3372:         for x in self.private_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3372, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_2 = __pyx_t_8; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3372, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3372, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_8); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3372, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_8); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3372, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_14(__pyx_t_2);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3372, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3373:           #total_carryover = 0.0
 3374:           #total_paper_balance = 0.0
 3375:           #total_carryover_limit = 0.0
+3376:           use_contract = 0
        __pyx_v_use_contract = 0;
+3377:           for yy in x.contract_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3377, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_26 = __pyx_t_8; __Pyx_INCREF(__pyx_t_26); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_16 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3377, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_26))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_8); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3377, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3377, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_8); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3377, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3377, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_16(__pyx_t_26);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3377, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_8);
          __pyx_t_8 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3378:             if yy == y.name:
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3378, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_25 = PyObject_RichCompare(__pyx_v_yy, __pyx_t_8, Py_EQ); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3378, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3378, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          if (__pyx_t_3) {
/* … */
          }
+3379:               use_contract = 1
            __pyx_v_use_contract = 1;
+3380:           if use_contract == 1:
        __pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
        if (__pyx_t_3) {
/* … */
        }
+3381:             for xx in x.district_list:
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3381, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
            __pyx_t_25 = __pyx_t_26; __Pyx_INCREF(__pyx_t_25); __pyx_t_15 = 0;
            __pyx_t_16 = NULL;
          } else {
            __pyx_t_15 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3381, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_16 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3381, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          for (;;) {
            if (likely(!__pyx_t_16)) {
              if (likely(PyList_CheckExact(__pyx_t_25))) {
                if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_25)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_26 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3381, __pyx_L1_error)
                #else
                __pyx_t_26 = PySequence_ITEM(__pyx_t_25, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3381, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_26);
                #endif
              } else {
                if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3381, __pyx_L1_error)
                #else
                __pyx_t_26 = PySequence_ITEM(__pyx_t_25, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3381, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_26);
                #endif
              }
            } else {
              __pyx_t_26 = __pyx_t_16(__pyx_t_25);
              if (unlikely(!__pyx_t_26)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3381, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_26);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_26);
            __pyx_t_26 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
 3382:               # district_object = self.district_keys[xx]
+3383:               new_alloc, carryover = x.calc_carryover(y.storage_pool[t], wateryear, y.type, y.name, xx, self.district_keys[xx].project_contract, self.district_keys[xx].rights)
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_t); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3383, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_23 = NULL;
            __pyx_t_6 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
              __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_8);
              if (likely(__pyx_t_23)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                __Pyx_INCREF(__pyx_t_23);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_8, function);
                __pyx_t_6 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_8)) {
              PyObject *__pyx_temp[8] = {__pyx_t_23, __pyx_t_22, __pyx_v_wateryear, __pyx_t_5, __pyx_t_4, __pyx_v_xx, __pyx_t_1, __pyx_t_7};
              __pyx_t_26 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
              PyObject *__pyx_temp[8] = {__pyx_t_23, __pyx_t_22, __pyx_v_wateryear, __pyx_t_5, __pyx_t_4, __pyx_v_xx, __pyx_t_1, __pyx_t_7};
              __pyx_t_26 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            } else
            #endif
            {
              __pyx_t_27 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              if (__pyx_t_23) {
                __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_27, 0, __pyx_t_23); __pyx_t_23 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_27, 0+__pyx_t_6, __pyx_t_22);
              __Pyx_INCREF(__pyx_v_wateryear);
              __Pyx_GIVEREF(__pyx_v_wateryear);
              PyTuple_SET_ITEM(__pyx_t_27, 1+__pyx_t_6, __pyx_v_wateryear);
              __Pyx_GIVEREF(__pyx_t_5);
              PyTuple_SET_ITEM(__pyx_t_27, 2+__pyx_t_6, __pyx_t_5);
              __Pyx_GIVEREF(__pyx_t_4);
              PyTuple_SET_ITEM(__pyx_t_27, 3+__pyx_t_6, __pyx_t_4);
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_27, 4+__pyx_t_6, __pyx_v_xx);
              __Pyx_GIVEREF(__pyx_t_1);
              PyTuple_SET_ITEM(__pyx_t_27, 5+__pyx_t_6, __pyx_t_1);
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_27, 6+__pyx_t_6, __pyx_t_7);
              __pyx_t_22 = 0;
              __pyx_t_5 = 0;
              __pyx_t_4 = 0;
              __pyx_t_1 = 0;
              __pyx_t_7 = 0;
              __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_27, NULL); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if ((likely(PyTuple_CheckExact(__pyx_t_26))) || (PyList_CheckExact(__pyx_t_26))) {
              PyObject* sequence = __pyx_t_26;
              Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(0, 3383, __pyx_L1_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              if (likely(PyTuple_CheckExact(sequence))) {
                __pyx_t_8 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_27 = PyTuple_GET_ITEM(sequence, 1); 
              } else {
                __pyx_t_8 = PyList_GET_ITEM(sequence, 0); 
                __pyx_t_27 = PyList_GET_ITEM(sequence, 1); 
              }
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(__pyx_t_27);
              #else
              __pyx_t_8 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_27 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              #endif
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            } else {
              Py_ssize_t index = -1;
              __pyx_t_7 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3383, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
              __pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext;
              index = 0; __pyx_t_8 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_8)) goto __pyx_L356_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_8);
              index = 1; __pyx_t_27 = __pyx_t_10(__pyx_t_7); if (unlikely(!__pyx_t_27)) goto __pyx_L356_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_27);
              if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_7), 2) < 0) __PYX_ERR(0, 3383, __pyx_L1_error)
              __pyx_t_10 = NULL;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              goto __pyx_L357_unpacking_done;
              __pyx_L356_unpacking_failed:;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_10 = NULL;
              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
              __PYX_ERR(0, 3383, __pyx_L1_error)
              __pyx_L357_unpacking_done:;
            }
            __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_8);
            __pyx_t_8 = 0;
            __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_27);
            __pyx_t_27 = 0;
 3384: 
+3385:               y.tot_carryover += carryover
            __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3385, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __pyx_t_27 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3385, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover, __pyx_t_27) < 0) __PYX_ERR(0, 3385, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3386:               y.tot_new_alloc += new_alloc
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3386, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_27, __pyx_v_new_alloc); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3386, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_t_26) < 0) __PYX_ERR(0, 3386, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 3387:               #total_carryover += x.carryover[xx][y.name]
 3388:               #total_paper_balance += x.paper_balance[xx][y.name]
 3389:               #total_carryover_limit += x.contract_carryover_list[xx][y.name]
 3390:             #if total_carryover + total_paper_balance > total_carryover_limit:
 3391:               #for xx in x.district_list:
 3392:                 #x.carryover[xx][y.name] = x.contract_carryover_list[xx][y.name]
 3393:                 #y.tot_carryover += x.carryover[xx][y.name]
 3394:               #y.tot_new_alloc += (total_carryover + total_paper_balance - total_carryover_limit)
 3395:             #else:
 3396:               #carryover_frac = (total_carryover + total_paper_balance)/total_carryover_limit
 3397:               #for xx in x.district_list:
 3398:                 #x.carryover[xx][y.name] = carryover_frac*x.contract_carryover_list[xx][y.name]
 3399:                 #y.tot_carryover += x.carryover[xx][y.name]
 3400:           #for xx in x.district_list:	
 3401:             #x.paper_balance[xx][y.name] = 0.0
+3402:         for x in self.city_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3402, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_25 = __pyx_t_2; __Pyx_INCREF(__pyx_t_25); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3402, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_14 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3402, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_25))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_25)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3402, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3402, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_2); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3402, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3402, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_14(__pyx_t_25);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3402, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
 3403:           #total_carryover = 0.0
 3404:           #total_paper_balance = 0.0
 3405:           #total_carryover_limit = 0.0
+3406:           use_contract = 0
        __pyx_v_use_contract = 0;
+3407:           for yy in x.contract_list:
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3407, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
          __pyx_t_26 = __pyx_t_2; __Pyx_INCREF(__pyx_t_26); __pyx_t_15 = 0;
          __pyx_t_16 = NULL;
        } else {
          __pyx_t_15 = -1; __pyx_t_26 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3407, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_16 = Py_TYPE(__pyx_t_26)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3407, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        for (;;) {
          if (likely(!__pyx_t_16)) {
            if (likely(PyList_CheckExact(__pyx_t_26))) {
              if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyList_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3407, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3407, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            } else {
              if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_26)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_26, __pyx_t_15); __Pyx_INCREF(__pyx_t_2); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3407, __pyx_L1_error)
              #else
              __pyx_t_2 = PySequence_ITEM(__pyx_t_26, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3407, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              #endif
            }
          } else {
            __pyx_t_2 = __pyx_t_16(__pyx_t_26);
            if (unlikely(!__pyx_t_2)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3407, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_2);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_2);
          __pyx_t_2 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3408:             if yy == y.name:
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3408, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_27 = PyObject_RichCompare(__pyx_v_yy, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_27); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3408, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_27); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 3408, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          if (__pyx_t_3) {
/* … */
          }
+3409:               use_contract = 1
            __pyx_v_use_contract = 1;
+3410:           if use_contract == 1:
        __pyx_t_3 = ((__pyx_v_use_contract == 1) != 0);
        if (__pyx_t_3) {
/* … */
        }
+3411:             for xx in x.district_list:
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3411, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          if (likely(PyList_CheckExact(__pyx_t_26)) || PyTuple_CheckExact(__pyx_t_26)) {
            __pyx_t_27 = __pyx_t_26; __Pyx_INCREF(__pyx_t_27); __pyx_t_15 = 0;
            __pyx_t_16 = NULL;
          } else {
            __pyx_t_15 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3411, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_16 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3411, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          for (;;) {
            if (likely(!__pyx_t_16)) {
              if (likely(PyList_CheckExact(__pyx_t_27))) {
                if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_27)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_26 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3411, __pyx_L1_error)
                #else
                __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3411, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_26);
                #endif
              } else {
                if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_26 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_15); __Pyx_INCREF(__pyx_t_26); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3411, __pyx_L1_error)
                #else
                __pyx_t_26 = PySequence_ITEM(__pyx_t_27, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3411, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_26);
                #endif
              }
            } else {
              __pyx_t_26 = __pyx_t_16(__pyx_t_27);
              if (unlikely(!__pyx_t_26)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3411, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_26);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_26);
            __pyx_t_26 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
 3412:               # district_object = self.district_keys[xx]
+3413:               new_alloc, carryover = x.calc_carryover(y.storage_pool[t], wateryear, y.type, y.name, xx, self.district_keys[xx].project_contract, self.district_keys[xx].rights)
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_calc_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_storage_pool); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_rights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __pyx_t_22 = NULL;
            __pyx_t_6 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
              __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_2);
              if (likely(__pyx_t_22)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
                __Pyx_INCREF(__pyx_t_22);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_2, function);
                __pyx_t_6 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_2)) {
              PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_t_7, __pyx_v_wateryear, __pyx_t_8, __pyx_t_1, __pyx_v_xx, __pyx_t_4, __pyx_t_5};
              __pyx_t_26 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
              PyObject *__pyx_temp[8] = {__pyx_t_22, __pyx_t_7, __pyx_v_wateryear, __pyx_t_8, __pyx_t_1, __pyx_v_xx, __pyx_t_4, __pyx_t_5};
              __pyx_t_26 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            } else
            #endif
            {
              __pyx_t_23 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              if (__pyx_t_22) {
                __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22); __pyx_t_22 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_7);
              PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_t_7);
              __Pyx_INCREF(__pyx_v_wateryear);
              __Pyx_GIVEREF(__pyx_v_wateryear);
              PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_wateryear);
              __Pyx_GIVEREF(__pyx_t_8);
              PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_8);
              __Pyx_GIVEREF(__pyx_t_1);
              PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_1);
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_v_xx);
              __Pyx_GIVEREF(__pyx_t_4);
              PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_6, __pyx_t_4);
              __Pyx_GIVEREF(__pyx_t_5);
              PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_6, __pyx_t_5);
              __pyx_t_7 = 0;
              __pyx_t_8 = 0;
              __pyx_t_1 = 0;
              __pyx_t_4 = 0;
              __pyx_t_5 = 0;
              __pyx_t_26 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_23, NULL); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_26);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            }
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            if ((likely(PyTuple_CheckExact(__pyx_t_26))) || (PyList_CheckExact(__pyx_t_26))) {
              PyObject* sequence = __pyx_t_26;
              Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
              if (unlikely(size != 2)) {
                if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(0, 3413, __pyx_L1_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              if (likely(PyTuple_CheckExact(sequence))) {
                __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_23 = PyTuple_GET_ITEM(sequence, 1); 
              } else {
                __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
                __pyx_t_23 = PyList_GET_ITEM(sequence, 1); 
              }
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(__pyx_t_23);
              #else
              __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_2);
              __pyx_t_23 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              #endif
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            } else {
              Py_ssize_t index = -1;
              __pyx_t_5 = PyObject_GetIter(__pyx_t_26); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3413, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
              __pyx_t_10 = Py_TYPE(__pyx_t_5)->tp_iternext;
              index = 0; __pyx_t_2 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_2)) goto __pyx_L366_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_2);
              index = 1; __pyx_t_23 = __pyx_t_10(__pyx_t_5); if (unlikely(!__pyx_t_23)) goto __pyx_L366_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_23);
              if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_5), 2) < 0) __PYX_ERR(0, 3413, __pyx_L1_error)
              __pyx_t_10 = NULL;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              goto __pyx_L367_unpacking_done;
              __pyx_L366_unpacking_failed:;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __pyx_t_10 = NULL;
              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
              __PYX_ERR(0, 3413, __pyx_L1_error)
              __pyx_L367_unpacking_done:;
            }
            __Pyx_XDECREF_SET(__pyx_v_new_alloc, __pyx_t_2);
            __pyx_t_2 = 0;
            __Pyx_XDECREF_SET(__pyx_v_carryover, __pyx_t_23);
            __pyx_t_23 = 0;
+3414:               y.tot_carryover += carryover
            __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3414, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __pyx_t_23 = PyNumber_InPlaceAdd(__pyx_t_26, __pyx_v_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3414, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover, __pyx_t_23) < 0) __PYX_ERR(0, 3414, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3415:               y.tot_new_alloc += new_alloc
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3415, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_26 = PyNumber_InPlaceAdd(__pyx_t_23, __pyx_v_new_alloc); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3415, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc, __pyx_t_26) < 0) __PYX_ERR(0, 3415, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
 3416:               #total_carryover += x.carryover[xx][y.name]
 3417:               #total_paper_balance += x.paper_balance[xx][y.name]
 3418:               #total_carryover_limit += x.contract_carryover_list[xx][y.name]
 3419:             #if total_carryover + total_paper_balance > total_carryover_limit:
 3420:               #for xx in x.district_list:
 3421:                 #x.carryover[xx][y.name] = x.contract_carryover_list[xx][y.name]
 3422:                 #y.tot_carryover += x.carryover[xx][y.name]
 3423:               #y.tot_new_alloc += (total_carryover + total_paper_balance - total_carryover_limit)
 3424:             #else:
 3425:               #if total_carryover_limit > 0.0:
 3426:                 #carryover_frac = (total_carryover + total_paper_balance)/total_carryover_limit
 3427:               #else:
 3428:                 #carryover_frac = 0.0
 3429:               #for xx in x.district_list:
 3430:                 #x.carryover[xx][y.name] = carryover_frac*x.contract_carryover_list[xx][y.name]
 3431: 
 3432:                 #y.tot_carryover += x.carryover[xx][y.name]
 3433:           #for xx in x.district_list:	
 3434:             #x.paper_balance[xx][y.name] = 0.0
 3435: 
 3436: 
+3437:         if y.name == 'tableA' and use_contract == 1:
      __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_t_25, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 3437, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      if (__pyx_t_11) {
      } else {
        __pyx_t_3 = __pyx_t_11;
        goto __pyx_L369_bool_binop_done;
      }
      __pyx_t_11 = ((__pyx_v_use_contract == 1) != 0);
      __pyx_t_3 = __pyx_t_11;
      __pyx_L369_bool_binop_done:;
      if (__pyx_t_3) {
/* … */
      }
+3438:           current_carryover_storage = self.sanluisstate.S[t] - y.tot_new_alloc - 40.0
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_25, __pyx_n_s_S); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_t); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_26 = PyNumber_Subtract(__pyx_t_25, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyFloat_SubtractObjC(__pyx_t_26, __pyx_float_40_0, 40.0, 0, 0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3438, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_XDECREF_SET(__pyx_v_current_carryover_storage, __pyx_t_27);
        __pyx_t_27 = 0;
+3439:           fudge_factor = current_carryover_storage/y.tot_carryover
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3439, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_26 = __Pyx_PyNumber_Divide(__pyx_v_current_carryover_storage, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3439, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __Pyx_XDECREF_SET(__pyx_v_fudge_factor, __pyx_t_26);
        __pyx_t_26 = 0;
+3440:           y.tot_carryover = self.sanluisstate.S[t] - y.tot_new_alloc - 40.0
        __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_t_26, __pyx_n_s_S); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_t); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_26);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_new_alloc); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __pyx_t_25 = PyNumber_Subtract(__pyx_t_26, __pyx_t_27); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        __pyx_t_27 = __Pyx_PyFloat_SubtractObjC(__pyx_t_25, __pyx_float_40_0, 40.0, 0, 0); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover, __pyx_t_27) < 0) __PYX_ERR(0, 3440, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3441:           sum_carryover = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_sum_carryover, __pyx_float_0_0);
+3442:           for x in self.district_list:
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3442, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
          __pyx_t_25 = __pyx_t_27; __Pyx_INCREF(__pyx_t_25); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3442, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_14 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3442, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_25))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_25)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_27 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3442, __pyx_L1_error)
              #else
              __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3442, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3442, __pyx_L1_error)
              #else
              __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3442, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              #endif
            }
          } else {
            __pyx_t_27 = __pyx_t_14(__pyx_t_25);
            if (unlikely(!__pyx_t_27)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3442, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_27);
          }
          __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_27);
          __pyx_t_27 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3443:             x.carryover[y.name] = x.carryover[y.name]*fudge_factor
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_26); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __pyx_t_26 = PyNumber_Multiply(__pyx_t_23, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_t_27, __pyx_t_26) < 0)) __PYX_ERR(0, 3443, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3444:             sum_carryover+= x.carryover[y.name]
          __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_26);
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          __pyx_t_27 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_23); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3444, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_27);
          __pyx_t_27 = 0;
+3445:           for x in self.private_list:
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
          __pyx_t_27 = __pyx_t_25; __Pyx_INCREF(__pyx_t_27); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_27 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3445, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          __pyx_t_14 = Py_TYPE(__pyx_t_27)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3445, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_27))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_27)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_25 = PyList_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3445, __pyx_L1_error)
              #else
              __pyx_t_25 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_27)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_27, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3445, __pyx_L1_error)
              #else
              __pyx_t_25 = PySequence_ITEM(__pyx_t_27, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3445, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              #endif
            }
          } else {
            __pyx_t_25 = __pyx_t_14(__pyx_t_27);
            if (unlikely(!__pyx_t_25)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3445, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_25);
          }
          __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_25);
          __pyx_t_25 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3446:             for xx in x.district_list:
          __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3446, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
            __pyx_t_23 = __pyx_t_25; __Pyx_INCREF(__pyx_t_23); __pyx_t_15 = 0;
            __pyx_t_16 = NULL;
          } else {
            __pyx_t_15 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3446, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_16 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3446, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          for (;;) {
            if (likely(!__pyx_t_16)) {
              if (likely(PyList_CheckExact(__pyx_t_23))) {
                if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_25 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3446, __pyx_L1_error)
                #else
                __pyx_t_25 = PySequence_ITEM(__pyx_t_23, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3446, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_25);
                #endif
              } else {
                if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_15); __Pyx_INCREF(__pyx_t_25); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3446, __pyx_L1_error)
                #else
                __pyx_t_25 = PySequence_ITEM(__pyx_t_23, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3446, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_25);
                #endif
              }
            } else {
              __pyx_t_25 = __pyx_t_16(__pyx_t_23);
              if (unlikely(!__pyx_t_25)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3446, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_25);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_25);
            __pyx_t_25 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3447:               x.carryover[xx][y.name] = x.carryover[xx][y.name]*fudge_factor
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_xx); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_25); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = PyNumber_Multiply(__pyx_t_2, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_2, __pyx_t_25) < 0)) __PYX_ERR(0, 3447, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3448:               sum_carryover+= x.carryover[xx][y.name]
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_25); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_26); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3448, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_25);
            __pyx_t_25 = 0;
+3449:           for x in self.city_list:
        __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3449, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_27);
        if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
          __pyx_t_23 = __pyx_t_27; __Pyx_INCREF(__pyx_t_23); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3449, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_14 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3449, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_23))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_27 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3449, __pyx_L1_error)
              #else
              __pyx_t_27 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3449, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3449, __pyx_L1_error)
              #else
              __pyx_t_27 = PySequence_ITEM(__pyx_t_23, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3449, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_27);
              #endif
            }
          } else {
            __pyx_t_27 = __pyx_t_14(__pyx_t_23);
            if (unlikely(!__pyx_t_27)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3449, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_27);
          }
          __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_27);
          __pyx_t_27 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3450:             for xx in x.district_list:
          __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3450, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
            __pyx_t_25 = __pyx_t_27; __Pyx_INCREF(__pyx_t_25); __pyx_t_15 = 0;
            __pyx_t_16 = NULL;
          } else {
            __pyx_t_15 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3450, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_16 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3450, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
          for (;;) {
            if (likely(!__pyx_t_16)) {
              if (likely(PyList_CheckExact(__pyx_t_25))) {
                if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_25)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_27 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_15); __Pyx_INCREF(__pyx_t_27); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3450, __pyx_L1_error)
                #else
                __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3450, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_27);
                #endif
              } else {
                if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_15); __Pyx_INCREF(__pyx_t_27); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 3450, __pyx_L1_error)
                #else
                __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3450, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_27);
                #endif
              }
            } else {
              __pyx_t_27 = __pyx_t_16(__pyx_t_25);
              if (unlikely(!__pyx_t_27)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3450, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_27);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_27);
            __pyx_t_27 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3451:               x.carryover[xx][y.name] = x.carryover[xx][y.name]*fudge_factor
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_t_27); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            __pyx_t_27 = PyNumber_Multiply(__pyx_t_2, __pyx_v_fudge_factor); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            if (unlikely(PyObject_SetItem(__pyx_t_26, __pyx_t_2, __pyx_t_27) < 0)) __PYX_ERR(0, 3451, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
+3452:               sum_carryover+= x.carryover[xx][y.name]
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_v_xx); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_27); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_26);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
            __pyx_t_27 = PyNumber_InPlaceAdd(__pyx_v_sum_carryover, __pyx_t_26); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3452, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_27);
            __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
            __Pyx_DECREF_SET(__pyx_v_sum_carryover, __pyx_t_27);
            __pyx_t_27 = 0;
 3453: 
 3454: 
 3455: 
+3456:         y.running_carryover = y.tot_carryover
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_running_carryover, __pyx_t_23) < 0) __PYX_ERR(0, 3456, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3457: 
 3458: 
 3459:       #reset counter for delta contract adjustment for foregone pumping and uncontrolled releases
+3460:       for z in self.pumping_turnback:
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3460, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
      __pyx_t_23 = __pyx_t_21; __Pyx_INCREF(__pyx_t_23); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3460, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_12 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3460, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_23))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_21 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3460, __pyx_L1_error)
          #else
          __pyx_t_21 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3460, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3460, __pyx_L1_error)
          #else
          __pyx_t_21 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3460, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_21);
          #endif
        }
      } else {
        __pyx_t_21 = __pyx_t_12(__pyx_t_23);
        if (unlikely(!__pyx_t_21)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3460, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_21);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_21);
      __pyx_t_21 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3461:         self.pumping_turnback[z] = 0.0
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      if (unlikely(PyObject_SetItem(__pyx_t_21, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3461, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3462:       for z in self.allocation_losses:
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3462, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
      __pyx_t_21 = __pyx_t_23; __Pyx_INCREF(__pyx_t_21); __pyx_t_9 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3462, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_12 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3462, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_21))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3462, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3462, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_9); __Pyx_INCREF(__pyx_t_23); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3462, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_21, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3462, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
        }
      } else {
        __pyx_t_23 = __pyx_t_12(__pyx_t_21);
        if (unlikely(!__pyx_t_23)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3462, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_23);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_23);
      __pyx_t_23 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3463:         self.allocation_losses[z] = 0.0
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3463, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_v_z, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3463, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 3464: 
 3465:     ##Clear Canal Flows
 3466:     ##every day, we zero out the flows on each canal (i.e. no canal storage, no 'routing' of water on the canals)
 3467: 	###any flow released from a reservoir is assumed to arrive at its destimation immediately
 3468:     #Reset canals and recalfews_src turnouts & flows at each node
+3469:     for z in self.canal_list:
  __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_list); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3469, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_21);
  if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
    __pyx_t_23 = __pyx_t_21; __Pyx_INCREF(__pyx_t_23); __pyx_t_9 = 0;
    __pyx_t_12 = NULL;
  } else {
    __pyx_t_9 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_12 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3469, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
  for (;;) {
    if (likely(!__pyx_t_12)) {
      if (likely(PyList_CheckExact(__pyx_t_23))) {
        if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_23)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_21 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3469, __pyx_L1_error)
        #else
        __pyx_t_21 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3469, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        #endif
      } else {
        if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_9); __Pyx_INCREF(__pyx_t_21); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3469, __pyx_L1_error)
        #else
        __pyx_t_21 = PySequence_ITEM(__pyx_t_23, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3469, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        #endif
      }
    } else {
      __pyx_t_21 = __pyx_t_12(__pyx_t_23);
      if (unlikely(!__pyx_t_21)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3469, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_21);
    }
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_21);
    __pyx_t_21 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+3470:       counter = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_counter, __pyx_int_0);
+3471:       for canal_loc in range(0, self.canal_district_len[z.name]):
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_27 = __Pyx_PyObject_GetItem(__pyx_t_21, __pyx_t_25); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    __pyx_t_25 = PyTuple_New(2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_t_27);
    PyTuple_SET_ITEM(__pyx_t_25, 1, __pyx_t_27);
    __pyx_t_27 = 0;
    __pyx_t_27 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_25, NULL); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3471, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_27);
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    if (likely(PyList_CheckExact(__pyx_t_27)) || PyTuple_CheckExact(__pyx_t_27)) {
      __pyx_t_25 = __pyx_t_27; __Pyx_INCREF(__pyx_t_25); __pyx_t_13 = 0;
      __pyx_t_14 = NULL;
    } else {
      __pyx_t_13 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_27); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3471, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_14 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3471, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
    for (;;) {
      if (likely(!__pyx_t_14)) {
        if (likely(PyList_CheckExact(__pyx_t_25))) {
          if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_25)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3471, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3471, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        } else {
          if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_27 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_27); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3471, __pyx_L1_error)
          #else
          __pyx_t_27 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3471, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_27);
          #endif
        }
      } else {
        __pyx_t_27 = __pyx_t_14(__pyx_t_25);
        if (unlikely(!__pyx_t_27)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3471, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_27);
      }
      __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_27);
      __pyx_t_27 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+3472:         loc_id = self.canal_district[z.name][canal_loc]
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_27, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyObject_GetItem(__pyx_t_26, __pyx_v_canal_loc); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3472, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_XDECREF_SET(__pyx_v_loc_id, __pyx_t_21);
      __pyx_t_21 = 0;
+3473:         z.accounting(t, loc_id.key, counter)
      __pyx_t_26 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_accounting); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3473, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_27 = __Pyx_PyObject_GetAttrStr(__pyx_v_loc_id, __pyx_n_s_key); if (unlikely(!__pyx_t_27)) __PYX_ERR(0, 3473, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_27);
      __pyx_t_2 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_26))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_26);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_26);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_26, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_26)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_t, __pyx_t_27, __pyx_v_counter};
        __pyx_t_21 = __Pyx_PyFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3473, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_26)) {
        PyObject *__pyx_temp[4] = {__pyx_t_2, __pyx_v_t, __pyx_t_27, __pyx_v_counter};
        __pyx_t_21 = __Pyx_PyCFunction_FastCall(__pyx_t_26, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3473, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_27); __pyx_t_27 = 0;
      } else
      #endif
      {
        __pyx_t_5 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 3473, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        if (__pyx_t_2) {
          __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_2); __pyx_t_2 = NULL;
        }
        __Pyx_INCREF(__pyx_v_t);
        __Pyx_GIVEREF(__pyx_v_t);
        PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_v_t);
        __Pyx_GIVEREF(__pyx_t_27);
        PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_27);
        __Pyx_INCREF(__pyx_v_counter);
        __Pyx_GIVEREF(__pyx_v_counter);
        PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_6, __pyx_v_counter);
        __pyx_t_27 = 0;
        __pyx_t_21 = __Pyx_PyObject_Call(__pyx_t_26, __pyx_t_5, NULL); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3473, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_21);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      }
      __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
+3474:         counter += 1
      __pyx_t_21 = __Pyx_PyInt_AddObjC(__pyx_v_counter, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3474, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF_SET(__pyx_v_counter, __pyx_t_21);
      __pyx_t_21 = 0;
+3475:       z.num_sites = self.canal_district_len[z.name]
    __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_21);
    __pyx_t_26 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_t_21); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3475, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_26);
    __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
    __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_z, __pyx_n_s_num_sites, __pyx_t_26) < 0) __PYX_ERR(0, 3475, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3476:       z.turnout_use = [0.0 for _ in range(z.num_sites)]
    { /* enter inner scope */
      __pyx_t_26 = PyList_New(0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3476, __pyx_L391_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3476, __pyx_L391_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_25 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_21); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3476, __pyx_L391_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      if (likely(PyList_CheckExact(__pyx_t_25)) || PyTuple_CheckExact(__pyx_t_25)) {
        __pyx_t_21 = __pyx_t_25; __Pyx_INCREF(__pyx_t_21); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_21 = PyObject_GetIter(__pyx_t_25); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3476, __pyx_L391_error)
        __Pyx_GOTREF(__pyx_t_21);
        __pyx_t_14 = Py_TYPE(__pyx_t_21)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3476, __pyx_L391_error)
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_21))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_21)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyList_GET_ITEM(__pyx_t_21, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3476, __pyx_L391_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3476, __pyx_L391_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_21)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_25 = PyTuple_GET_ITEM(__pyx_t_21, __pyx_t_13); __Pyx_INCREF(__pyx_t_25); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3476, __pyx_L391_error)
            #else
            __pyx_t_25 = PySequence_ITEM(__pyx_t_21, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3476, __pyx_L391_error)
            __Pyx_GOTREF(__pyx_t_25);
            #endif
          }
        } else {
          __pyx_t_25 = __pyx_t_14(__pyx_t_21);
          if (unlikely(!__pyx_t_25)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3476, __pyx_L391_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_25);
        }
        __Pyx_XDECREF_SET(__pyx_9genexpr15__pyx_v__, __pyx_t_25);
        __pyx_t_25 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_26, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 3476, __pyx_L391_error)
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__); __pyx_9genexpr15__pyx_v__ = 0;
      goto __pyx_L394_exit_scope;
      __pyx_L391_error:;
      __Pyx_XDECREF(__pyx_9genexpr15__pyx_v__); __pyx_9genexpr15__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L394_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_z, __pyx_n_s_turnout_use, __pyx_t_26) < 0) __PYX_ERR(0, 3476, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3477:       z.flow = [0.0 for _ in range(z.num_sites+1)]
    { /* enter inner scope */
      __pyx_t_26 = PyList_New(0); if (unlikely(!__pyx_t_26)) __PYX_ERR(0, 3477, __pyx_L397_error)
      __Pyx_GOTREF(__pyx_t_26);
      __pyx_t_21 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_num_sites); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3477, __pyx_L397_error)
      __Pyx_GOTREF(__pyx_t_21);
      __pyx_t_25 = __Pyx_PyInt_AddObjC(__pyx_t_21, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3477, __pyx_L397_error)
      __Pyx_GOTREF(__pyx_t_25);
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      __pyx_t_21 = __Pyx_PyObject_CallOneArg(__pyx_builtin_range, __pyx_t_25); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3477, __pyx_L397_error)
      __Pyx_GOTREF(__pyx_t_21);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      if (likely(PyList_CheckExact(__pyx_t_21)) || PyTuple_CheckExact(__pyx_t_21)) {
        __pyx_t_25 = __pyx_t_21; __Pyx_INCREF(__pyx_t_25); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_21); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 3477, __pyx_L397_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_14 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3477, __pyx_L397_error)
      }
      __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_25))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_25)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_21); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3477, __pyx_L397_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3477, __pyx_L397_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_21 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_13); __Pyx_INCREF(__pyx_t_21); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 3477, __pyx_L397_error)
            #else
            __pyx_t_21 = PySequence_ITEM(__pyx_t_25, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 3477, __pyx_L397_error)
            __Pyx_GOTREF(__pyx_t_21);
            #endif
          }
        } else {
          __pyx_t_21 = __pyx_t_14(__pyx_t_25);
          if (unlikely(!__pyx_t_21)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3477, __pyx_L397_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_21);
        }
        __Pyx_XDECREF_SET(__pyx_9genexpr16__pyx_v__, __pyx_t_21);
        __pyx_t_21 = 0;
        if (unlikely(__Pyx_ListComp_Append(__pyx_t_26, (PyObject*)__pyx_float_0_0))) __PYX_ERR(0, 3477, __pyx_L397_error)
      }
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_XDECREF(__pyx_9genexpr16__pyx_v__); __pyx_9genexpr16__pyx_v__ = 0;
      goto __pyx_L400_exit_scope;
      __pyx_L397_error:;
      __Pyx_XDECREF(__pyx_9genexpr16__pyx_v__); __pyx_9genexpr16__pyx_v__ = 0;
      goto __pyx_L1_error;
      __pyx_L400_exit_scope:;
    } /* exit inner scope */
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_z, __pyx_n_s_flow, __pyx_t_26) < 0) __PYX_ERR(0, 3477, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_26); __pyx_t_26 = 0;
+3478:       z.locked = 0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_z, __pyx_n_s_locked, __pyx_int_0) < 0) __PYX_ERR(0, 3478, __pyx_L1_error)
 3479: 
 3480: 
+3481:     return swp_release, cvp_release, swp_release2, cvp_release2, swp_pump, cvp_pump
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_23 = PyTuple_New(6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 3481, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_23);
  __Pyx_INCREF(__pyx_v_swp_release);
  __Pyx_GIVEREF(__pyx_v_swp_release);
  PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_v_swp_release);
  __Pyx_INCREF(__pyx_v_cvp_release);
  __Pyx_GIVEREF(__pyx_v_cvp_release);
  PyTuple_SET_ITEM(__pyx_t_23, 1, __pyx_v_cvp_release);
  __Pyx_INCREF(__pyx_v_swp_release2);
  __Pyx_GIVEREF(__pyx_v_swp_release2);
  PyTuple_SET_ITEM(__pyx_t_23, 2, __pyx_v_swp_release2);
  __Pyx_INCREF(__pyx_v_cvp_release2);
  __Pyx_GIVEREF(__pyx_v_cvp_release2);
  PyTuple_SET_ITEM(__pyx_t_23, 3, __pyx_v_cvp_release2);
  __Pyx_INCREF(__pyx_v_swp_pump);
  __Pyx_GIVEREF(__pyx_v_swp_pump);
  PyTuple_SET_ITEM(__pyx_t_23, 4, __pyx_v_swp_pump);
  __Pyx_INCREF(__pyx_v_cvp_pump);
  __Pyx_GIVEREF(__pyx_v_cvp_pump);
  PyTuple_SET_ITEM(__pyx_t_23, 5, __pyx_v_cvp_pump);
  __pyx_r = __pyx_t_23;
  __pyx_t_23 = 0;
  goto __pyx_L0;
 3482: 
 3483: #####################################################################################################################
 3484: #####################################################################################################################
 3485: #####################################################################################################################
 3486: 
 3487: #####################################################################################################################
 3488: #############################  Federal/State San Luis Storage Sharing   #############################################
 3489: #####################################################################################################################		  
+3490:   def step_san_luis(self, t, m, da):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_53step_san_luis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_53step_san_luis = {"step_san_luis", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_53step_san_luis, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_53step_san_luis(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_da = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("step_san_luis (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_m,&__pyx_n_s_da,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 4, 4, 1); __PYX_ERR(0, 3490, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 4, 4, 2); __PYX_ERR(0, 3490, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 4, 4, 3); __PYX_ERR(0, 3490, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "step_san_luis") < 0)) __PYX_ERR(0, 3490, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_m = values[2];
    __pyx_v_da = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("step_san_luis", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3490, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.step_san_luis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_52step_san_luis(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_m, __pyx_v_da);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_52step_san_luis(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_m, PyObject *__pyx_v_da) {
  PyObject *__pyx_v_extra_storage_s = NULL;
  PyObject *__pyx_v_extra_space_s = NULL;
  PyObject *__pyx_v_extra_storage_f = NULL;
  PyObject *__pyx_v_extra_space_f = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__50)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("step_san_luis", 0);
  __Pyx_TraceCall("step_san_luis", __pyx_f[0], 3490, 0, __PYX_ERR(0, 3490, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.step_san_luis", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_extra_storage_s);
  __Pyx_XDECREF(__pyx_v_extra_space_s);
  __Pyx_XDECREF(__pyx_v_extra_storage_f);
  __Pyx_XDECREF(__pyx_v_extra_space_f);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__115 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_m, __pyx_n_s_da, __pyx_n_s_extra_storage_s, __pyx_n_s_extra_space_s, __pyx_n_s_extra_storage_f, __pyx_n_s_extra_space_f); if (unlikely(!__pyx_tuple__115)) __PYX_ERR(0, 3490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__115);
  __Pyx_GIVEREF(__pyx_tuple__115);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_53step_san_luis, 0, __pyx_n_s_Model_step_san_luis, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__50)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3490, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_step_san_luis, __pyx_t_2) < 0) __PYX_ERR(0, 3490, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__50 = (PyObject*)__Pyx_PyCode_New(4, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__115, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_step_san_luis, 3490, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__50)) __PYX_ERR(0, 3490, __pyx_L1_error)
 3491:   #This function allows the state/federal projects to take advantage of any unused space the other may have so that storage
 3492:   #volumes can temporarily go above each project's 50% share of the storage cpacity at san luis
+3493:     self.sanluisfederal.S[t+1] = self.sanluisfederal.S[t] + self.trp_pumping[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_trp_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_S); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_2) < 0)) __PYX_ERR(0, 3493, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3494:     self.sanluisstate.S[t+1] = self.sanluisstate.S[t] + self.hro_pumping[t]
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_hro_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_1, __pyx_t_3) < 0)) __PYX_ERR(0, 3494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3495:     if m == 10 and da == 1:
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3495, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L3;
  }
+3496:       self.ytd_pump_trp[t] = self.trp_pumping[t]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_trp_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_trp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3496, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 3496, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3497:       self.ytd_pump_hro[t] = self.hro_pumping[t]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_hro_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_hro); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_t, __pyx_t_3) < 0)) __PYX_ERR(0, 3497, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 3498:     else:
+3499:       self.ytd_pump_trp[t] = self.trp_pumping[t] + self.ytd_pump_trp[t-1]
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_trp_pumping); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_trp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_trp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_t, __pyx_t_2) < 0)) __PYX_ERR(0, 3499, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3500:       self.ytd_pump_hro[t] = self.hro_pumping[t] + self.ytd_pump_hro[t-1]
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_hro_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_hro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_6, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_ytd_pump_hro); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_t, __pyx_t_1) < 0)) __PYX_ERR(0, 3500, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
 3501: 
+3502:     if self.sanluisstate.S[t+1] > 1021.0:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_float_1021_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3502, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L6;
  }
+3503:       extra_storage_s = self.sanluisstate.S[t+1] - 1021.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_3, __pyx_float_1021_0, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_extra_storage_s = __pyx_t_1;
    __pyx_t_1 = 0;
+3504:       extra_space_s = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_space_s = __pyx_float_0_0;
 3505:     else:
 3506:       #extra_space_s = 0.0
+3507:       extra_space_s = 1021.0 - self.sanluisstate.S[t+1]
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_6, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3507, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_extra_space_s = __pyx_t_1;
    __pyx_t_1 = 0;
+3508:       extra_storage_s = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_storage_s = __pyx_float_0_0;
  }
  __pyx_L6:;
+3509:     if self.sanluisfederal.S[t+1] > 1021.0:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_float_1021_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3509, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L7;
  }
+3510:       extra_storage_f = self.sanluisfederal.S[t+1] - 1021.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_6, __pyx_float_1021_0, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_extra_storage_f = __pyx_t_1;
    __pyx_t_1 = 0;
+3511:       extra_space_f = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_space_f = __pyx_float_0_0;
 3512:     else:
 3513:       #extra_space_f = 0.0
+3514:       extra_space_f = 1021.0 - self.sanluisfederal.S[t+1]
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_3, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_v_extra_space_f = __pyx_t_1;
    __pyx_t_1 = 0;
+3515:       extra_storage_f = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_extra_storage_f = __pyx_float_0_0;
  }
  __pyx_L7:;
+3516:     if extra_storage_s > 0.0:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_extra_storage_s, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3516, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L8;
  }
+3517:       self.sanluisstate.fcr = max(extra_storage_s - extra_space_f,0.0)
    __pyx_t_7 = 0.0;
    __pyx_t_1 = PyNumber_Subtract(__pyx_v_extra_storage_s, __pyx_v_extra_space_f); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
      __pyx_t_2 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3517, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __pyx_t_2;
      __pyx_t_2 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_3 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_t_3;
    __Pyx_INCREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_fcr, __pyx_t_1) < 0) __PYX_ERR(0, 3517, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 3518:     else:
+3519:       self.sanluisstate.fcr = 0.0
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_fcr, __pyx_float_0_0) < 0) __PYX_ERR(0, 3519, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  }
  __pyx_L8:;
+3520:     if extra_storage_f > 0.0:
  __pyx_t_3 = PyObject_RichCompare(__pyx_v_extra_storage_f, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3520, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3520, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L9;
  }
+3521:       self.sanluisfederal.fcr = max(extra_storage_f - extra_space_s,0.0)
    __pyx_t_7 = 0.0;
    __pyx_t_3 = PyNumber_Subtract(__pyx_v_extra_storage_f, __pyx_v_extra_space_s); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_4) {
      __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3521, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __pyx_t_6;
      __pyx_t_6 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_3);
      __pyx_t_1 = __pyx_t_3;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_fcr, __pyx_t_3) < 0) __PYX_ERR(0, 3521, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 3522:     else:
+3523:       self.sanluisfederal.fcr = 0.0
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3523, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_fcr, __pyx_float_0_0) < 0) __PYX_ERR(0, 3523, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L9:;
+3524:     self.sanluisstate.S[t+1] -= self.sanluisstate.fcr
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fcr); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_InPlaceSubtract(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_1, __pyx_t_2) < 0)) __PYX_ERR(0, 3524, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3525:     self.sanluisfederal.S[t+1] -= self.sanluisfederal.fcr
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_S); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_fcr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_3, __pyx_t_8) < 0)) __PYX_ERR(0, 3525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3526:     return max(min(extra_storage_s, extra_space_f), 0.0), max(min(extra_storage_f, extra_space_s),0.0)
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_7 = 0.0;
  __Pyx_INCREF(__pyx_v_extra_space_f);
  __pyx_t_1 = __pyx_v_extra_space_f;
  __Pyx_INCREF(__pyx_v_extra_storage_s);
  __pyx_t_3 = __pyx_v_extra_storage_s;
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_4) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_8 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_3);
    __pyx_t_8 = __pyx_t_3;
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_t_8);
  __pyx_t_1 = __pyx_t_8;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_4) {
    __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = __pyx_t_6;
    __pyx_t_6 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_8 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = 0.0;
  __Pyx_INCREF(__pyx_v_extra_space_s);
  __pyx_t_1 = __pyx_v_extra_space_s;
  __Pyx_INCREF(__pyx_v_extra_storage_f);
  __pyx_t_6 = __pyx_v_extra_storage_f;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_4) {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
  } else {
    __Pyx_INCREF(__pyx_t_6);
    __pyx_t_3 = __pyx_t_6;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_INCREF(__pyx_t_3);
  __pyx_t_1 = __pyx_t_3;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_6 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_4) {
    __pyx_t_2 = PyFloat_FromDouble(__pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_t_2;
    __pyx_t_2 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_3 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3526, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_8);
  __Pyx_INCREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_3);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 3527: 
+3528:   def find_san_luis_space(self, t, swp_pump_max, cvp_pump_max):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_55find_san_luis_space(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_55find_san_luis_space = {"find_san_luis_space", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_55find_san_luis_space, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_55find_san_luis_space(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_swp_pump_max = 0;
  PyObject *__pyx_v_cvp_pump_max = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_san_luis_space (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_swp_pump_max,&__pyx_n_s_cvp_pump_max,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 4, 4, 1); __PYX_ERR(0, 3528, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_pump_max)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 4, 4, 2); __PYX_ERR(0, 3528, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_pump_max)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 4, 4, 3); __PYX_ERR(0, 3528, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_san_luis_space") < 0)) __PYX_ERR(0, 3528, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_swp_pump_max = values[2];
    __pyx_v_cvp_pump_max = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_san_luis_space", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3528, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_san_luis_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_54find_san_luis_space(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_swp_pump_max, __pyx_v_cvp_pump_max);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_54find_san_luis_space(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_swp_pump_max, PyObject *__pyx_v_cvp_pump_max) {
  PyObject *__pyx_v_swp_pump = NULL;
  PyObject *__pyx_v_cvp_pump = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__51)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_san_luis_space", 0);
  __Pyx_TraceCall("find_san_luis_space", __pyx_f[0], 3528, 0, __PYX_ERR(0, 3528, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_san_luis_space", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_swp_pump);
  __Pyx_XDECREF(__pyx_v_cvp_pump);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__116 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_swp_pump_max, __pyx_n_s_cvp_pump_max, __pyx_n_s_swp_pump, __pyx_n_s_cvp_pump); if (unlikely(!__pyx_tuple__116)) __PYX_ERR(0, 3528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__116);
  __Pyx_GIVEREF(__pyx_tuple__116);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_55find_san_luis_space, 0, __pyx_n_s_Model_find_san_luis_space, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3528, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_san_luis_space, __pyx_t_2) < 0) __PYX_ERR(0, 3528, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(4, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__116, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_san_luis_space, 3528, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 3528, __pyx_L1_error)
 3529:     #if there is no additional storage in san luis, send toggle variable to the northern model to turn 'off'
 3530: 	#pumping at teh delta (so no wasted pumping if there is no room in san luis)
+3531:     if self.sanluisstate.S[t+1] + swp_pump_max > 1020.0:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_3, __pyx_v_swp_pump_max); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3531, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L3;
  }
+3532:       swp_pump = 1021.0 - self.sanluisstate.S[t+1]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisstate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_S); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_2, 1021.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_swp_pump = __pyx_t_3;
    __pyx_t_3 = 0;
 3533:     else:
+3534:       swp_pump = 999.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_999_0);
    __pyx_v_swp_pump = __pyx_float_999_0;
  }
  __pyx_L3:;
+3535:     if self.sanluisfederal.S[t+1] + cvp_pump_max >	1020.0:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Add(__pyx_t_1, __pyx_v_cvp_pump_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
/* … */
    goto __pyx_L4;
  }
+3536:       cvp_pump = 1021.0 - self.sanluisfederal.S[t+1]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sanluisfederal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1021_0, __pyx_t_2, 1021.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_cvp_pump = __pyx_t_1;
    __pyx_t_1 = 0;
 3537:     else:
+3538:       cvp_pump = 999.0
  /*else*/ {
    __Pyx_INCREF(__pyx_float_999_0);
    __pyx_v_cvp_pump = __pyx_float_999_0;
  }
  __pyx_L4:;
 3539: 
+3540:     return swp_pump, cvp_pump
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3540, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_swp_pump);
  __Pyx_GIVEREF(__pyx_v_swp_pump);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_swp_pump);
  __Pyx_INCREF(__pyx_v_cvp_pump);
  __Pyx_GIVEREF(__pyx_v_cvp_pump);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_cvp_pump);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 3541: 
+3542:   def estimate_project_pumping(self, t, proj_surplus, max_pumping, swp_AS, cvp_AS, max_tax_free, flood_release, wyt):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_57estimate_project_pumping(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_57estimate_project_pumping = {"estimate_project_pumping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_57estimate_project_pumping, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_57estimate_project_pumping(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_proj_surplus = 0;
  PyObject *__pyx_v_max_pumping = 0;
  PyObject *__pyx_v_swp_AS = 0;
  PyObject *__pyx_v_cvp_AS = 0;
  PyObject *__pyx_v_max_tax_free = 0;
  PyObject *__pyx_v_flood_release = 0;
  PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("estimate_project_pumping (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_proj_surplus,&__pyx_n_s_max_pumping,&__pyx_n_s_swp_AS,&__pyx_n_s_cvp_AS,&__pyx_n_s_max_tax_free,&__pyx_n_s_flood_release,&__pyx_n_s_wyt,0};
    PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 1); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_proj_surplus)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 2); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_pumping)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 3); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_swp_AS)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 4); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_cvp_AS)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 5); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 6); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_release)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 7); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, 8); __PYX_ERR(0, 3542, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "estimate_project_pumping") < 0)) __PYX_ERR(0, 3542, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_proj_surplus = values[2];
    __pyx_v_max_pumping = values[3];
    __pyx_v_swp_AS = values[4];
    __pyx_v_cvp_AS = values[5];
    __pyx_v_max_tax_free = values[6];
    __pyx_v_flood_release = values[7];
    __pyx_v_wyt = values[8];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("estimate_project_pumping", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3542, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.estimate_project_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_56estimate_project_pumping(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_proj_surplus, __pyx_v_max_pumping, __pyx_v_swp_AS, __pyx_v_cvp_AS, __pyx_v_max_tax_free, __pyx_v_flood_release, __pyx_v_wyt);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_56estimate_project_pumping(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_proj_surplus, PyObject *__pyx_v_max_pumping, PyObject *__pyx_v_swp_AS, PyObject *__pyx_v_cvp_AS, PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_flood_release, PyObject *__pyx_v_wyt) {
  PyObject *__pyx_v_dowy = NULL;
  PyObject *__pyx_v_year_index = NULL;
  PyObject *__pyx_v_tax_free_frac = NULL;
  PyObject *__pyx_v_excess_storage = NULL;
  PyObject *__pyx_v_available_storage = NULL;
  PyObject *__pyx_v_max_pump = NULL;
  PyObject *__pyx_v_expected_pumping = NULL;
  PyObject *__pyx_v_key = NULL;
  long __pyx_v_monthloop;
  PyObject *__pyx_v_daysmonth = NULL;
  PyObject *__pyx_v_dowyeom = NULL;
  PyObject *__pyx_v_running_days = NULL;
  PyObject *__pyx_v_start_m = NULL;
  PyObject *__pyx_v_end_m = NULL;
  PyObject *__pyx_v_total_tax_free = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__52)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("estimate_project_pumping", 0);
  __Pyx_TraceCall("estimate_project_pumping", __pyx_f[0], 3542, 0, __PYX_ERR(0, 3542, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.estimate_project_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dowy);
  __Pyx_XDECREF(__pyx_v_year_index);
  __Pyx_XDECREF(__pyx_v_tax_free_frac);
  __Pyx_XDECREF(__pyx_v_excess_storage);
  __Pyx_XDECREF(__pyx_v_available_storage);
  __Pyx_XDECREF(__pyx_v_max_pump);
  __Pyx_XDECREF(__pyx_v_expected_pumping);
  __Pyx_XDECREF(__pyx_v_key);
  __Pyx_XDECREF(__pyx_v_daysmonth);
  __Pyx_XDECREF(__pyx_v_dowyeom);
  __Pyx_XDECREF(__pyx_v_running_days);
  __Pyx_XDECREF(__pyx_v_start_m);
  __Pyx_XDECREF(__pyx_v_end_m);
  __Pyx_XDECREF(__pyx_v_total_tax_free);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__117 = PyTuple_Pack(24, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_proj_surplus, __pyx_n_s_max_pumping, __pyx_n_s_swp_AS, __pyx_n_s_cvp_AS, __pyx_n_s_max_tax_free, __pyx_n_s_flood_release, __pyx_n_s_wyt, __pyx_n_s_dowy, __pyx_n_s_year_index, __pyx_n_s_tax_free_frac, __pyx_n_s_excess_storage, __pyx_n_s_available_storage, __pyx_n_s_max_pump, __pyx_n_s_expected_pumping, __pyx_n_s_key, __pyx_n_s_monthloop, __pyx_n_s_daysmonth, __pyx_n_s_dowyeom, __pyx_n_s_running_days, __pyx_n_s_start_m, __pyx_n_s_end_m, __pyx_n_s_total_tax_free); if (unlikely(!__pyx_tuple__117)) __PYX_ERR(0, 3542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__117);
  __Pyx_GIVEREF(__pyx_tuple__117);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_57estimate_project_pumping, 0, __pyx_n_s_Model_estimate_project_pumping, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__52)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3542, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_estimate_project_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 3542, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__52 = (PyObject*)__Pyx_PyCode_New(9, 0, 24, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__117, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_estimate_project_pumping, 3542, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__52)) __PYX_ERR(0, 3542, __pyx_L1_error)
+3543:     dowy = self.dowy[t]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3543, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_dowy = __pyx_t_2;
  __pyx_t_2 = 0;
+3544:     year_index = self.year[t] - self.starting_year
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3544, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_year_index = __pyx_t_3;
  __pyx_t_3 = 0;
 3545: 
 3546:     # month_evaluate = m - 1
+3547:     tax_free_frac = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3547, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_tax_free_frac = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+3548:     excess_storage = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3548, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_excess_storage = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+3549:     available_storage = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3549, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_available_storage = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+3550:     max_pump = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3550, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_max_pump = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+3551:     expected_pumping = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_v_expected_pumping = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
+3552:     available_storage['swp'] = swp_AS
  if (unlikely(PyDict_SetItem(__pyx_v_available_storage, __pyx_n_u_swp, __pyx_v_swp_AS) < 0)) __PYX_ERR(0, 3552, __pyx_L1_error)
+3553:     available_storage['cvp'] = cvp_AS
  if (unlikely(PyDict_SetItem(__pyx_v_available_storage, __pyx_n_u_cvp, __pyx_v_cvp_AS) < 0)) __PYX_ERR(0, 3553, __pyx_L1_error)
+3554:     max_pump['swp'] = 6680.0*cfs_tafd
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 3554, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3555:     max_pump['cvp'] = 4300.0*cfs_tafd
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = PyNumber_Multiply(__pyx_float_4300_0, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_3) < 0)) __PYX_ERR(0, 3555, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3556:     expected_pumping['swp'] = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_swp, __pyx_t_3) < 0)) __PYX_ERR(0, 3556, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3557:     expected_pumping['swp']['taxed']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3557, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_taxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3557, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3558:     expected_pumping['swp']['untaxed']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_untaxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3559:     expected_pumping['swp']['gains']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_gains, __pyx_t_3) < 0)) __PYX_ERR(0, 3559, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3560:     expected_pumping['cvp'] = {}
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3560, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp, __pyx_t_3) < 0)) __PYX_ERR(0, 3560, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3561:     expected_pumping['cvp']['taxed']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_taxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3561, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3562:     expected_pumping['cvp']['untaxed']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3562, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_untaxed, __pyx_t_3) < 0)) __PYX_ERR(0, 3562, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3563:     expected_pumping['cvp']['gains']= np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_3 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_1, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_gains, __pyx_t_3) < 0)) __PYX_ERR(0, 3563, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 3564: 
+3565:     for key in ['swp', 'cvp']:
  __pyx_t_3 = __pyx_tuple__53; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
  for (;;) {
    if (__pyx_t_4 >= 2) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 3565, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_key, ((PyObject*)__pyx_t_2));
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
/* … */
  __pyx_tuple__53 = PyTuple_Pack(2, __pyx_n_u_swp, __pyx_n_u_cvp); if (unlikely(!__pyx_tuple__53)) __PYX_ERR(0, 3565, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__53);
  __Pyx_GIVEREF(__pyx_tuple__53);
+3566:       tax_free_frac[key] = min(max(available_storage[key]/max_tax_free[wyt][key][dowy], 0.0), 1.0)
    __pyx_t_5 = 1.0;
    __pyx_t_6 = 0.0;
    __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_available_storage, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_9) {
      __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3566, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __pyx_t_8;
      __pyx_t_8 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_1 = __pyx_t_7;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_7 = __pyx_t_1;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_9) {
      __pyx_t_2 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3566, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __pyx_t_2;
      __pyx_t_2 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_1 = __pyx_t_7;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_tax_free_frac, __pyx_v_key, __pyx_t_7) < 0)) __PYX_ERR(0, 3566, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3567:       excess_storage[key] = max(available_storage[key] - max_tax_free[wyt][key][dowy], 0.0)
    __pyx_t_5 = 0.0;
    __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_available_storage, __pyx_v_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_9) {
      __pyx_t_8 = PyFloat_FromDouble(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3567, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __pyx_t_8;
      __pyx_t_8 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_1 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_excess_storage, __pyx_v_key, __pyx_t_2) < 0)) __PYX_ERR(0, 3567, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3568:       # if dowy < 123:
 3569:       #   total_taxed = (123 + 92 - dowy)*max_pump[key] - (max_tax_free[wyt][key][dowy] - max_tax_free[wyt][key][122]) - max_tax_free[wyt][key][274]
 3570:       # elif dowy < 274:
 3571:       #   total_taxed = (273 + 92 - dowy)*max_pump[key] - max_tax_free[wyt][key][dowy]
 3572:       # else:
 3573:       #   total_taxed = (365 - dowy)*max_pump[key] - max_tax_free[wyt][key][dowy]
 3574: 
 3575:       #if month_evaluate > 8:
+3576:       for monthloop in range(0, 12):
    for (__pyx_t_10 = 0; __pyx_t_10 < 12; __pyx_t_10+=1) {
      __pyx_v_monthloop = __pyx_t_10;
 3577:         # if month already happened this year, we are looping to next year
+3578:         if self.dowy_eom[year_index][monthloop] < dowy:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_v_dowy, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3578, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_9) {
/* … */
        goto __pyx_L7;
      }
+3579:           daysmonth = self.days_in_month[year_index + 1][monthloop]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3579, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_2);
        __pyx_t_2 = 0;
+3580:           dowyeom = self.dowy_eom[year_index + 1][monthloop]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_1, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_dowyeom, __pyx_t_8);
        __pyx_t_8 = 0;
+3581:           running_days = 365 - dowy + dowyeom
        __pyx_t_8 = __Pyx_PyInt_SubtractCObj(__pyx_int_365, __pyx_v_dowy, 0x16D, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3581, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = PyNumber_Add(__pyx_t_8, __pyx_v_dowyeom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3581, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_running_days, __pyx_t_1);
        __pyx_t_1 = 0;
 3582: 
 3583:         else:
+3584:           daysmonth = self.days_in_month[year_index][monthloop]
      /*else*/ {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3584, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_index); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3584, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3584, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_1);
        __pyx_t_1 = 0;
+3585:           dowyeom = self.dowy_eom[year_index][monthloop]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_index); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3585, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_dowyeom, __pyx_t_1);
        __pyx_t_1 = 0;
+3586:           running_days = dowyeom - dowy
        __pyx_t_1 = PyNumber_Subtract(__pyx_v_dowyeom, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3586, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_running_days, __pyx_t_1);
        __pyx_t_1 = 0;
      }
      __pyx_L7:;
 3587: 
 3588:         # max_tax_free starts with total max_tax_free for water year at index 0, then amount left after day 0 in index 1, etc. So total_tax_free for October is index 0 minus index[31], November is [31]-[61],...
+3589:         start_m = dowyeom - daysmonth + 1
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_dowyeom, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3589, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_start_m, __pyx_t_8);
      __pyx_t_8 = 0;
+3590:         end_m = dowyeom + 1
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_dowyeom, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3590, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_end_m, __pyx_t_8);
      __pyx_t_8 = 0;
+3591:         total_tax_free = max_tax_free[wyt][key][start_m] - max_tax_free[wyt][key][end_m]
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_start_m); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_max_tax_free, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_end_m); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3591, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_total_tax_free, __pyx_t_2);
      __pyx_t_2 = 0;
 3592: 
 3593:           #if excess_storage[key] > total_taxed and dowy < self.dowy_eom[monthloop]:
+3594:         if monthloop == 3 or monthloop == 4:
      switch (__pyx_v_monthloop) {
        case 3:
        case 4:
/* … */
        break;
        default:
+3595:           max_pump['swp'] = 750.0*cfs_tafd
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3595, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyNumber_Multiply(__pyx_float_750_0, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3595, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_1) < 0)) __PYX_ERR(0, 3595, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3596:           max_pump['cvp'] = 750.0*cfs_tafd
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3596, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyNumber_Multiply(__pyx_float_750_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3596, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 3596, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3597:         else:
+3598:           max_pump['swp'] = 6680.0*cfs_tafd
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3598, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = PyNumber_Multiply(__pyx_float_6680_0, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3598, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_1) < 0)) __PYX_ERR(0, 3598, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3599:           max_pump['cvp'] = 4300.0*cfs_tafd
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3599, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = PyNumber_Multiply(__pyx_float_4300_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3599, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 3599, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        break;
      }
 3600: 
 3601:         # account for omr rules
+3602:         if t > self.omr_rule_start - running_days:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_omr_rule_start); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_running_days); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_RichCompare(__pyx_v_t, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3602, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3602, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_9) {
/* … */
      }
+3603:           max_pump['swp'] = min(max_pump['swp'], max_pumping['swp'][monthloop]/daysmonth)
        __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_n_u_swp); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_9) {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_8 = __pyx_t_2;
        } else {
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_8 = __pyx_t_1;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_8;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 3603, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3604:           max_pump['cvp'] = min(max_pump['cvp'], max_pumping['cvp'][monthloop]/daysmonth)
        __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_n_u_cvp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_7 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_9) {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_1 = __pyx_t_2;
        } else {
          __Pyx_INCREF(__pyx_t_8);
          __pyx_t_1 = __pyx_t_8;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_1;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_max_pump, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 3604, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3605: 
 3606: 
+3607:         expected_pumping[key]['taxed'][monthloop] = max_pump[key]*daysmonth
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_taxed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3607, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_v_monthloop, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3607, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3608:         expected_pumping[key]['untaxed'][monthloop] = min(max(proj_surplus[key][monthloop] + flood_release[key]*daysmonth,total_tax_free), max_pump[key]*daysmonth)
      __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_INCREF(__pyx_v_total_tax_free);
      __pyx_t_1 = __pyx_v_total_tax_free;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_proj_surplus, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_release, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_11 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Add(__pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_9) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_11 = __pyx_t_1;
      } else {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_11 = __pyx_t_2;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_1 = __pyx_t_11;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_9) {
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_11 = __pyx_t_8;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_11 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __pyx_t_11;
      __Pyx_INCREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_v_monthloop, __pyx_t_8, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3608, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3609:         expected_pumping[key]['gains'][monthloop] = min(proj_surplus[key][monthloop] + flood_release[key]*daysmonth, max_pump[key]*daysmonth)
      __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_max_pump, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_proj_surplus, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_flood_release, __pyx_v_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_Add(__pyx_t_11, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_11 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_9) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      } else {
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_2 = __pyx_t_8;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_gains); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_v_monthloop, __pyx_t_1, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3609, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
 3610: 
+3611:     return expected_pumping
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_expected_pumping);
  __pyx_r = __pyx_v_expected_pumping;
  goto __pyx_L0;
 3612: 
 3613: 
 3614: 
+3615:   def find_pumping_release(self, m, da, year_index, start_storage, pump_max, month_demand, month_demand_must_fill, allocation, expected_pumping, flood_supply, available_storage, flood_storage, projected_carryover, current_carryover, max_tax_free, wyt, t, key):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_59find_pumping_release(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_59find_pumping_release = {"find_pumping_release", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_59find_pumping_release, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_59find_pumping_release(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_da = 0;
  PyObject *__pyx_v_year_index = 0;
  PyObject *__pyx_v_start_storage = 0;
  CYTHON_UNUSED PyObject *__pyx_v_pump_max = 0;
  PyObject *__pyx_v_month_demand = 0;
  PyObject *__pyx_v_month_demand_must_fill = 0;
  CYTHON_UNUSED PyObject *__pyx_v_allocation = 0;
  PyObject *__pyx_v_expected_pumping = 0;
  CYTHON_UNUSED PyObject *__pyx_v_flood_supply = 0;
  PyObject *__pyx_v_available_storage = 0;
  CYTHON_UNUSED PyObject *__pyx_v_flood_storage = 0;
  PyObject *__pyx_v_projected_carryover = 0;
  PyObject *__pyx_v_current_carryover = 0;
  CYTHON_UNUSED PyObject *__pyx_v_max_tax_free = 0;
  PyObject *__pyx_v_wyt = 0;
  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_pumping_release (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_m,&__pyx_n_s_da,&__pyx_n_s_year_index,&__pyx_n_s_start_storage,&__pyx_n_s_pump_max,&__pyx_n_s_month_demand,&__pyx_n_s_month_demand_must_fill,&__pyx_n_s_allocation,&__pyx_n_s_expected_pumping,&__pyx_n_s_flood_supply,&__pyx_n_s_available_storage,&__pyx_n_s_flood_storage,&__pyx_n_s_projected_carryover,&__pyx_n_s_current_carryover,&__pyx_n_s_max_tax_free,&__pyx_n_s_wyt,&__pyx_n_s_t,&__pyx_n_s_key,0};
    PyObject* values[19] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 19: values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
        CYTHON_FALLTHROUGH;
        case 18: values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
        CYTHON_FALLTHROUGH;
        case 17: values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
        CYTHON_FALLTHROUGH;
        case 16: values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
        CYTHON_FALLTHROUGH;
        case 15: values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
        CYTHON_FALLTHROUGH;
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 1); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 2); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 3); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_start_storage)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 4); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_pump_max)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 5); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_month_demand)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 6); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_month_demand_must_fill)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 7); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allocation)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 8); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_expected_pumping)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 9); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_supply)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 10); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_available_storage)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 11); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flood_storage)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 12); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 13:
        if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_projected_carryover)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 13); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 14:
        if (likely((values[14] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_current_carryover)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 14); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 15:
        if (likely((values[15] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_tax_free)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 15); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 16:
        if (likely((values[16] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 16); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 17:
        if (likely((values[17] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 17); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 18:
        if (likely((values[18] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, 18); __PYX_ERR(0, 3615, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_pumping_release") < 0)) __PYX_ERR(0, 3615, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 19) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
      values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
      values[14] = PyTuple_GET_ITEM(__pyx_args, 14);
      values[15] = PyTuple_GET_ITEM(__pyx_args, 15);
      values[16] = PyTuple_GET_ITEM(__pyx_args, 16);
      values[17] = PyTuple_GET_ITEM(__pyx_args, 17);
      values[18] = PyTuple_GET_ITEM(__pyx_args, 18);
    }
    __pyx_v_self = values[0];
    __pyx_v_m = values[1];
    __pyx_v_da = values[2];
    __pyx_v_year_index = values[3];
    __pyx_v_start_storage = values[4];
    __pyx_v_pump_max = values[5];
    __pyx_v_month_demand = values[6];
    __pyx_v_month_demand_must_fill = values[7];
    __pyx_v_allocation = values[8];
    __pyx_v_expected_pumping = values[9];
    __pyx_v_flood_supply = values[10];
    __pyx_v_available_storage = values[11];
    __pyx_v_flood_storage = values[12];
    __pyx_v_projected_carryover = values[13];
    __pyx_v_current_carryover = values[14];
    __pyx_v_max_tax_free = values[15];
    __pyx_v_wyt = values[16];
    __pyx_v_t = values[17];
    __pyx_v_key = values[18];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_pumping_release", 1, 19, 19, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3615, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_pumping_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_58find_pumping_release(__pyx_self, __pyx_v_self, __pyx_v_m, __pyx_v_da, __pyx_v_year_index, __pyx_v_start_storage, __pyx_v_pump_max, __pyx_v_month_demand, __pyx_v_month_demand_must_fill, __pyx_v_allocation, __pyx_v_expected_pumping, __pyx_v_flood_supply, __pyx_v_available_storage, __pyx_v_flood_storage, __pyx_v_projected_carryover, __pyx_v_current_carryover, __pyx_v_max_tax_free, __pyx_v_wyt, __pyx_v_t, __pyx_v_key);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_58find_pumping_release(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_m, PyObject *__pyx_v_da, PyObject *__pyx_v_year_index, PyObject *__pyx_v_start_storage, CYTHON_UNUSED PyObject *__pyx_v_pump_max, PyObject *__pyx_v_month_demand, PyObject *__pyx_v_month_demand_must_fill, CYTHON_UNUSED PyObject *__pyx_v_allocation, PyObject *__pyx_v_expected_pumping, CYTHON_UNUSED PyObject *__pyx_v_flood_supply, PyObject *__pyx_v_available_storage, CYTHON_UNUSED PyObject *__pyx_v_flood_storage, PyObject *__pyx_v_projected_carryover, PyObject *__pyx_v_current_carryover, CYTHON_UNUSED PyObject *__pyx_v_max_tax_free, PyObject *__pyx_v_wyt, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_key) {
  PyObject *__pyx_v_month_evaluate = NULL;
  PyObject *__pyx_v_expected_demands = NULL;
  PyObject *__pyx_v_expected_inflow = NULL;
  PyObject *__pyx_v_expected_untaxed = NULL;
  PyObject *__pyx_v_expected_taxed = NULL;
  PyObject *__pyx_v_net_monthly = NULL;
  PyObject *__pyx_v_next_month_storage = NULL;
  PyObject *__pyx_v_this_month_days = NULL;
  PyObject *__pyx_v_article21 = NULL;
  PyObject *__pyx_v_numdays_fillup = NULL;
  PyObject *__pyx_v_numdays_fillup_next_year = NULL;
  PyObject *__pyx_v_total_days_remaining = NULL;
  long __pyx_v_pumping_toggle;
  long __pyx_v_tax_free_toggle;
  long __pyx_v_pumping_toggle_override;
  long __pyx_v_tax_free_toggle_override;
  CYTHON_UNUSED long __pyx_v_exceed_toggle_override;
  PyObject *__pyx_v_cross_counter_y = NULL;
  long __pyx_v_cross_counter_wy;
  long __pyx_v_end_counter;
  CYTHON_UNUSED double __pyx_v_extra_demand;
  CYTHON_UNUSED PyObject *__pyx_v_carryover_adjust = NULL;
  PyObject *__pyx_v_partial_month_remaining = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__54)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_pumping_release", 0);
  __Pyx_TraceCall("find_pumping_release", __pyx_f[0], 3615, 0, __PYX_ERR(0, 3615, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_available_storage);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_pumping_release", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_month_evaluate);
  __Pyx_XDECREF(__pyx_v_expected_demands);
  __Pyx_XDECREF(__pyx_v_expected_inflow);
  __Pyx_XDECREF(__pyx_v_expected_untaxed);
  __Pyx_XDECREF(__pyx_v_expected_taxed);
  __Pyx_XDECREF(__pyx_v_net_monthly);
  __Pyx_XDECREF(__pyx_v_next_month_storage);
  __Pyx_XDECREF(__pyx_v_this_month_days);
  __Pyx_XDECREF(__pyx_v_article21);
  __Pyx_XDECREF(__pyx_v_numdays_fillup);
  __Pyx_XDECREF(__pyx_v_numdays_fillup_next_year);
  __Pyx_XDECREF(__pyx_v_total_days_remaining);
  __Pyx_XDECREF(__pyx_v_cross_counter_y);
  __Pyx_XDECREF(__pyx_v_carryover_adjust);
  __Pyx_XDECREF(__pyx_v_partial_month_remaining);
  __Pyx_XDECREF(__pyx_v_available_storage);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__118 = PyTuple_Pack(42, __pyx_n_s_self, __pyx_n_s_m, __pyx_n_s_da, __pyx_n_s_year_index, __pyx_n_s_start_storage, __pyx_n_s_pump_max, __pyx_n_s_month_demand, __pyx_n_s_month_demand_must_fill, __pyx_n_s_allocation, __pyx_n_s_expected_pumping, __pyx_n_s_flood_supply, __pyx_n_s_available_storage, __pyx_n_s_flood_storage, __pyx_n_s_projected_carryover, __pyx_n_s_current_carryover, __pyx_n_s_max_tax_free, __pyx_n_s_wyt, __pyx_n_s_t, __pyx_n_s_key, __pyx_n_s_month_evaluate, __pyx_n_s_expected_demands, __pyx_n_s_expected_inflow, __pyx_n_s_expected_untaxed, __pyx_n_s_expected_taxed, __pyx_n_s_net_monthly, __pyx_n_s_next_month_storage, __pyx_n_s_this_month_days, __pyx_n_s_article21, __pyx_n_s_numdays_fillup, __pyx_n_s_numdays_fillup_next_year, __pyx_n_s_total_days_remaining, __pyx_n_s_pumping_toggle, __pyx_n_s_tax_free_toggle, __pyx_n_s_pumping_toggle_override, __pyx_n_s_tax_free_toggle_override, __pyx_n_s_exceed_toggle_override, __pyx_n_s_cross_counter_y, __pyx_n_s_cross_counter_wy, __pyx_n_s_end_counter, __pyx_n_s_extra_demand, __pyx_n_s_carryover_adjust, __pyx_n_s_partial_month_remaining); if (unlikely(!__pyx_tuple__118)) __PYX_ERR(0, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__118);
  __Pyx_GIVEREF(__pyx_tuple__118);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_59find_pumping_release, 0, __pyx_n_s_Model_find_pumping_release, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__54)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3615, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_pumping_release, __pyx_t_2) < 0) __PYX_ERR(0, 3615, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__54 = (PyObject*)__Pyx_PyCode_New(19, 0, 42, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__118, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_pumping_release, 3615, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__54)) __PYX_ERR(0, 3615, __pyx_L1_error)
 3616:     ##this function is used by the swpdelta & cvpdelta contracts to manage san luis reservoir storage
 3617: 	##and coordinate pumping at the delta
 3618:     ##state and federal storage portions managed seperately
 3619: 
+3620:     month_evaluate = m - 1
  __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_month_evaluate = __pyx_t_1;
  __pyx_t_1 = 0;
 3621:     # first_month_frac = max(self.days_in_month[year_index][month_evaluate] - da, 0.0)/self.days_in_month[year_index][month_evaluate]
 3622: 
 3623: 
 3624: 	###Initial storage projections - current month
 3625: 	##calculate expected deliveries during this month from san luis
 3626:     #expected_demands = (month_demand[wyt][month_evaluate]*allocation + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index][month_evaluate]
+3627:     expected_demands = (month_demand[wyt][month_evaluate] + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index][month_evaluate]
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3627, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_expected_demands = __pyx_t_2;
  __pyx_t_2 = 0;
+3628:     expected_inflow = expected_pumping['gains'][month_evaluate]/self.days_in_month[year_index][month_evaluate]
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_expected_inflow = __pyx_t_1;
  __pyx_t_1 = 0;
+3629:     expected_untaxed = (expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])*(1.0 - da/self.days_in_month[year_index][month_evaluate])
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_da, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_2, 1.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_expected_untaxed = __pyx_t_2;
  __pyx_t_2 = 0;
+3630:     expected_taxed = (expected_pumping['taxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])*(1.0 - da/self.days_in_month[year_index][month_evaluate])
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_taxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_v_da, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_3, 1.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_expected_taxed = __pyx_t_3;
  __pyx_t_3 = 0;
 3631: 
 3632: 	#how much 'unstored' pumping can we expect into San Luis?
 3633:     #self.month_averages comes from self.predict_delta_gains
 3634: 	#proj_surplus & proj_surplus2 are generated in the northern model, from 8RI regression in self.predict_delta_gains
+3635:     if month_evaluate == 3 or month_evaluate == 4:
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3635, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!__pyx_t_5) {
  } else {
    __pyx_t_4 = __pyx_t_5;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3635, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3635, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __pyx_t_5;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_4) {
/* … */
  }
+3636:       expected_inflow = 0.75
    __Pyx_INCREF(__pyx_float_0_75);
    __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_float_0_75);
 3637:     #expected monthly change in san luis storage
+3638:     net_monthly = (expected_inflow - expected_demands)*max(self.days_in_month[year_index][month_evaluate] - da, 0.0)
  __pyx_t_3 = PyNumber_Subtract(__pyx_v_expected_inflow, __pyx_v_expected_demands); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_6 = 0.0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Subtract(__pyx_t_1, __pyx_v_da); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_7 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_4) {
    __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = __pyx_t_8;
    __pyx_t_8 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_1 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3638, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_v_net_monthly = __pyx_t_2;
  __pyx_t_2 = 0;
 3639:     ##Enter into a loop for projecting storage & pumping forward one month at a time
 3640: 	##start with current estimates
+3641:     next_month_storage = start_storage#running storage levels
  __Pyx_INCREF(__pyx_v_start_storage);
  __pyx_v_next_month_storage = __pyx_v_start_storage;
+3642:     this_month_days = max(self.days_in_month[year_index][month_evaluate] - da, 0.0)#running days in a month
  __pyx_t_6 = 0.0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_2, __pyx_v_da); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3642, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_4) {
    __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3642, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __pyx_t_8;
    __pyx_t_8 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_1);
    __pyx_t_2 = __pyx_t_1;
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_t_2;
  __Pyx_INCREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_this_month_days = __pyx_t_1;
  __pyx_t_1 = 0;
+3643:     article21 = 0.0#initialize article 21 release estimates
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_article21 = __pyx_float_0_0;
+3644:     numdays_fillup = 999.9#initialize numdays_fillup variable
  __Pyx_INCREF(__pyx_float_999_9);
  __pyx_v_numdays_fillup = __pyx_float_999_9;
+3645:     numdays_fillup_next_year = 999.9
  __Pyx_INCREF(__pyx_float_999_9);
  __pyx_v_numdays_fillup_next_year = __pyx_float_999_9;
+3646:     total_days_remaining = 0.0#used for estimates of how long san luis will take to fill up (for districts to make carryover decisions)
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_total_days_remaining = __pyx_float_0_0;
 3647: 
+3648:     pumping_toggle = 1#toggle for releasing water to maximum pumping levels
  __pyx_v_pumping_toggle = 1;
+3649:     tax_free_toggle = 1#toggle for releasing water to 'tax free' pumping levels
  __pyx_v_tax_free_toggle = 1;
+3650:     pumping_toggle_override = 0#toggle for releasing water to maximum pumping levels
  __pyx_v_pumping_toggle_override = 0;
+3651:     tax_free_toggle_override = 0#toggle for releasing water to 'tax free' pumping levels
  __pyx_v_tax_free_toggle_override = 0;
+3652:     exceed_toggle_override = 0
  __pyx_v_exceed_toggle_override = 0;
 3653:     ##loop through all months until april (april/may have very limited pumping, should not plan for any pumping to occur then)
 3654: 	##this loop helps to project storage in san luis up to a year out > so we know in advance if we need to pump or will be filling the reservoir
 3655: 	##note: this loop will go through one water year and into the next one
+3656:     cross_counter_y = 0
  __Pyx_INCREF(__pyx_int_0);
  __pyx_v_cross_counter_y = __pyx_int_0;
+3657:     cross_counter_wy = 0
  __pyx_v_cross_counter_wy = 0;
+3658:     end_counter = 0
  __pyx_v_end_counter = 0;
+3659:     extra_demand = 0.0
  __pyx_v_extra_demand = 0.0;
+3660:     carryover_adjust = current_carryover
  __Pyx_INCREF(__pyx_v_current_carryover);
  __pyx_v_carryover_adjust = __pyx_v_current_carryover;
+3661:     while end_counter == 0:
  while (1) {
    __pyx_t_4 = ((__pyx_v_end_counter == 0) != 0);
    if (!__pyx_t_4) break;
 3662:     #while month_evaluate == m - 1:
 3663:       #estimate storage at the end of this month by adding monthly change to the running storage tally
+3664:       next_month_storage += net_monthly
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_next_month_storage, __pyx_v_net_monthly); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_1);
    __pyx_t_1 = 0;
 3665: 
+3666:       if net_monthly > 0.0:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_net_monthly, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3666, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3666, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {
/* … */
      goto __pyx_L8;
    }
+3667:         partial_month_remaining = max(1 - max(next_month_storage - 1020.0, 0.0)/net_monthly, 0.0)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
      __pyx_t_6 = 0.0;
      __pyx_t_9 = 0.0;
      __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_v_next_month_storage, __pyx_float_1020_0, 1020.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_4) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3667, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_v_net_monthly); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_4) {
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3667, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __pyx_t_8;
        __pyx_t_8 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_1 = __pyx_t_2;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3667, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_partial_month_remaining, __pyx_t_3);
      __pyx_t_3 = 0;
 3668:       else:
+3669:         next_month_storage = min(1020.0 + net_monthly, next_month_storage)
    /*else*/ {
      __Pyx_INCREF(__pyx_v_next_month_storage);
      __pyx_t_3 = __pyx_v_next_month_storage;
      __pyx_t_8 = __Pyx_PyFloat_AddCObj(__pyx_float_1020_0, __pyx_v_net_monthly, 1020.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3669, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3669, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_1 = __pyx_t_3;
      } else {
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_1 = __pyx_t_8;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_1;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_3);
      __pyx_t_3 = 0;
+3670:         partial_month_remaining = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_partial_month_remaining, __pyx_float_0_0);
    }
    __pyx_L8:;
+3671:       if next_month_storage > 1020.0:
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3671, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3671, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
/* … */
    }
+3672:         exceed_toggle_override = 1
      __pyx_v_exceed_toggle_override = 1;
 3673: 	  ##can we reach the storage targets only using 'tax free' pumping?
 3674:       ##how much water can we expect to pump w/o additional E/I tax through the end of the month?
 3675:       #if dowy <= self.dowy_eom[month_evaluate]:#running water year is the same as the beginning of the loop
 3676:         #how much 'tax free' pumping through the end of this month? - total tax free remaining at the current simulation day, minus total tax free remaining at the end of the looped month
 3677:         #running_tax_free_pumping = self.max_tax_free[wyt][key][dowy] - self.max_tax_free[wyt][key][self.dowy_eom[month_evaluate]]
 3678:       #else:#looped into the next water year, so we have to calculate the tax free pumping remaining through the end of the current year, then add in the tax free remaining through the looped month in the next year
 3679:         #running_tax_free_pumping = self.max_tax_free[wyt][key][dowy] + self.max_tax_free[wyt][key][0] - self.max_tax_free[wyt][key][self.dowy_eom[month_evaluate]]
 3680:       #running_tax_free_pumping will be added to the net_month storage variable, so we don't want to double-count 'unstored pumping'
 3681:       #if running_tax_free_pumping > available_pumping:
 3682:         #running_tax_free_pumping = available_pumping
 3683: 	  ##note - beginning month = m; looped month = month_evaluate
+3684:       if start_storage > 1000.0:
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_start_storage, __pyx_float_1000_0, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3684, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3684, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
/* … */
    }
 3685:         #if san luis storage is currently greater than capacity, no pumping, article21 releases triggered
+3686:         pumping_toggle = min(0, pumping_toggle)
      __pyx_t_10 = __pyx_v_pumping_toggle;
      __pyx_t_11 = 0;
      if (((__pyx_t_10 < __pyx_t_11) != 0)) {
        __pyx_t_12 = __pyx_t_10;
      } else {
        __pyx_t_12 = __pyx_t_11;
      }
      __pyx_v_pumping_toggle = __pyx_t_12;
+3687:         tax_free_toggle = min(0, tax_free_toggle)
      __pyx_t_12 = __pyx_v_tax_free_toggle;
      __pyx_t_10 = 0;
      if (((__pyx_t_12 < __pyx_t_10) != 0)) {
        __pyx_t_11 = __pyx_t_12;
      } else {
        __pyx_t_11 = __pyx_t_10;
      }
      __pyx_v_tax_free_toggle = __pyx_t_11;
+3688:         article21 = max(next_month_storage - 1000.0, start_storage - 1000.0, article21)
      __pyx_t_3 = __Pyx_PyFloat_SubtractObjC(__pyx_v_start_storage, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_article21);
      __pyx_t_1 = __pyx_v_article21;
      __pyx_t_8 = __Pyx_PyFloat_SubtractObjC(__pyx_v_next_month_storage, __pyx_float_1000_0, 1000.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
      } else {
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_2 = __pyx_t_8;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_8 = __pyx_t_2;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3688, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      } else {
        __Pyx_INCREF(__pyx_t_8);
        __pyx_t_2 = __pyx_t_8;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_3);
      __pyx_t_3 = 0;
+3689:         numdays_fillup = 0.0#if this condition is hit, no more days needed to fill reservoir (already full)
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_float_0_0);
+3690:       if next_month_storage < 1020.0:
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_1020_0, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3690, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3690, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_4) {
/* … */
      goto __pyx_L11;
    }
+3691:         article21 = max(0.0, article21)
      __Pyx_INCREF(__pyx_v_article21);
      __pyx_t_3 = __pyx_v_article21;
      __pyx_t_6 = 0.0;
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3691, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3691, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3691, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
      } else {
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3691, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __pyx_t_8;
        __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_3);
      __pyx_t_3 = 0;
 3692:         #if expected storage is less than 0 in any month, pump at max, no article 21
+3693:         if (next_month_storage + expected_untaxed) > 1020.0:
      __pyx_t_3 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3693, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_3, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3693, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3693, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_4) {
/* … */
        goto __pyx_L12;
      }
+3694:           if net_monthly+(expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate]) > 0.0:
        __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyNumber_Add(__pyx_v_net_monthly, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3694, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_4) {
/* … */
        }
+3695:             partial_month_remaining = max(1 - max(next_month_storage + expected_untaxed - 1020.0, 0.0)/(net_monthly+(expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])), 0.0)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
          __pyx_t_6 = 0.0;
          __pyx_t_9 = 0.0;
          __pyx_t_2 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_8 = __Pyx_PyFloat_SubtractObjC(__pyx_t_2, __pyx_float_1020_0, 1020.0, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_3 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_1 = PyObject_RichCompare(__pyx_t_3, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_4) {
            __pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_2 = __pyx_t_1;
            __pyx_t_1 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_2 = __pyx_t_8;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_Subtract(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_Add(__pyx_v_net_monthly, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyInt_SubtractCObj(__pyx_int_1, __pyx_t_8, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_4) {
            __pyx_t_1 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_8 = __pyx_t_1;
            __pyx_t_1 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_3);
            __pyx_t_8 = __pyx_t_3;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_1 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3695, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF_SET(__pyx_v_partial_month_remaining, __pyx_t_2);
          __pyx_t_2 = 0;
 3696: 
+3697:           numdays_fillup = min(numdays_fillup,total_days_remaining + partial_month_remaining)
        __pyx_t_2 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3697, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_numdays_fillup);
        __pyx_t_1 = __pyx_v_numdays_fillup;
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3697, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3697, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_4) {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_8 = __pyx_t_2;
        } else {
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_8 = __pyx_t_1;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_8;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_2);
        __pyx_t_2 = 0;
+3698:           if cross_counter_wy == 1:
        __pyx_t_4 = ((__pyx_v_cross_counter_wy == 1) != 0);
        if (__pyx_t_4) {
/* … */
        }
+3699:             numdays_fillup_next_year = min(numdays_fillup_next_year, total_days_remaining + partial_month_remaining)
          __pyx_t_2 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3699, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_INCREF(__pyx_v_numdays_fillup_next_year);
          __pyx_t_8 = __pyx_v_numdays_fillup_next_year;
          __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3699, __pyx_L1_error)
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3699, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (__pyx_t_4) {
            __Pyx_INCREF(__pyx_t_2);
            __pyx_t_1 = __pyx_t_2;
          } else {
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_1 = __pyx_t_8;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __pyx_t_1;
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF_SET(__pyx_v_numdays_fillup_next_year, __pyx_t_2);
          __pyx_t_2 = 0;
 3700:         else:
+3701:           numdays_fillup = min(numdays_fillup, 999.9)#reservoir does not fill up in this condition (if it was full in prior loop months, retains its value)
      /*else*/ {
        __pyx_t_6 = 999.9;
        __Pyx_INCREF(__pyx_v_numdays_fillup);
        __pyx_t_2 = __pyx_v_numdays_fillup;
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3701, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3701, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3701, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_4) {
          __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3701, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_1 = __pyx_t_3;
          __pyx_t_3 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_1 = __pyx_t_2;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_1;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_2);
        __pyx_t_2 = 0;
      }
      __pyx_L12:;
+3702:         if next_month_storage + expected_untaxed > 1020.0:
      __pyx_t_2 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_untaxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3702, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3702, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3702, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_4) {
/* … */
        goto __pyx_L15;
      }
+3703:           pumping_toggle = min(0, pumping_toggle)
        __pyx_t_11 = __pyx_v_pumping_toggle;
        __pyx_t_12 = 0;
        if (((__pyx_t_11 < __pyx_t_12) != 0)) {
          __pyx_t_10 = __pyx_t_11;
        } else {
          __pyx_t_10 = __pyx_t_12;
        }
        __pyx_v_pumping_toggle = __pyx_t_10;
+3704:           tax_free_toggle = min(0, tax_free_toggle)
        __pyx_t_10 = __pyx_v_tax_free_toggle;
        __pyx_t_11 = 0;
        if (((__pyx_t_10 < __pyx_t_11) != 0)) {
          __pyx_t_12 = __pyx_t_10;
        } else {
          __pyx_t_12 = __pyx_t_11;
        }
        __pyx_v_tax_free_toggle = __pyx_t_12;
+3705:         elif next_month_storage + expected_taxed > 1020.0:
      __pyx_t_1 = PyNumber_Add(__pyx_v_next_month_storage, __pyx_v_expected_taxed); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3705, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_1020_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3705, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3705, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_4) {
/* … */
        goto __pyx_L15;
      }
+3706:           pumping_toggle = min(0, pumping_toggle)
        __pyx_t_12 = __pyx_v_pumping_toggle;
        __pyx_t_10 = 0;
        if (((__pyx_t_12 < __pyx_t_10) != 0)) {
          __pyx_t_11 = __pyx_t_12;
        } else {
          __pyx_t_11 = __pyx_t_10;
        }
        __pyx_v_pumping_toggle = __pyx_t_11;
+3707:           tax_free_toggle = min(0, tax_free_toggle)
        __pyx_t_11 = __pyx_v_tax_free_toggle;
        __pyx_t_12 = 0;
        if (((__pyx_t_11 < __pyx_t_12) != 0)) {
          __pyx_t_10 = __pyx_t_11;
        } else {
          __pyx_t_10 = __pyx_t_12;
        }
        __pyx_v_tax_free_toggle = __pyx_t_10;
 3708:         else:
+3709:           pumping_toggle = min(1, pumping_toggle)
      /*else*/ {
        __pyx_t_10 = __pyx_v_pumping_toggle;
        __pyx_t_11 = 1;
        if (((__pyx_t_10 < __pyx_t_11) != 0)) {
          __pyx_t_12 = __pyx_t_10;
        } else {
          __pyx_t_12 = __pyx_t_11;
        }
        __pyx_v_pumping_toggle = __pyx_t_12;
+3710:           tax_free_toggle = min(1, tax_free_toggle)
        __pyx_t_12 = __pyx_v_tax_free_toggle;
        __pyx_t_10 = 1;
        if (((__pyx_t_12 < __pyx_t_10) != 0)) {
          __pyx_t_11 = __pyx_t_12;
        } else {
          __pyx_t_11 = __pyx_t_10;
        }
        __pyx_v_tax_free_toggle = __pyx_t_11;
      }
      __pyx_L15:;
 3711:       else:
+3712:         article21 = max(0.0, article21)
    /*else*/ {
      __Pyx_INCREF(__pyx_v_article21);
      __pyx_t_2 = __pyx_v_article21;
      __pyx_t_6 = 0.0;
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3712, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3712, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3712, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_1 = __pyx_t_2;
      } else {
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3712, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __pyx_t_8;
        __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __pyx_t_1;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_article21, __pyx_t_2);
      __pyx_t_2 = 0;
+3713:         pumping_toggle = min(0, pumping_toggle)
      __pyx_t_11 = __pyx_v_pumping_toggle;
      __pyx_t_12 = 0;
      if (((__pyx_t_11 < __pyx_t_12) != 0)) {
        __pyx_t_10 = __pyx_t_11;
      } else {
        __pyx_t_10 = __pyx_t_12;
      }
      __pyx_v_pumping_toggle = __pyx_t_10;
+3714:         tax_free_toggle = min(0, tax_free_toggle)
      __pyx_t_10 = __pyx_v_tax_free_toggle;
      __pyx_t_11 = 0;
      if (((__pyx_t_10 < __pyx_t_11) != 0)) {
        __pyx_t_12 = __pyx_t_10;
      } else {
        __pyx_t_12 = __pyx_t_11;
      }
      __pyx_v_tax_free_toggle = __pyx_t_12;
 3715:         #article21 flows are the expected extra flows divided by the number of days until the end of the month
+3716:         numdays_fillup = min(numdays_fillup,total_days_remaining+partial_month_remaining)
      __pyx_t_2 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3716, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_INCREF(__pyx_v_numdays_fillup);
      __pyx_t_1 = __pyx_v_numdays_fillup;
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3716, __pyx_L1_error)
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3716, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_4) {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_8 = __pyx_t_2;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_8 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __pyx_t_8;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF_SET(__pyx_v_numdays_fillup, __pyx_t_2);
      __pyx_t_2 = 0;
+3717:         if cross_counter_wy == 1:
      __pyx_t_4 = ((__pyx_v_cross_counter_wy == 1) != 0);
      if (__pyx_t_4) {
/* … */
      }
    }
    __pyx_L11:;
+3718:           numdays_fillup_next_year = min(numdays_fillup_next_year, total_days_remaining + partial_month_remaining)
        __pyx_t_2 = PyNumber_Add(__pyx_v_total_days_remaining, __pyx_v_partial_month_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_numdays_fillup_next_year);
        __pyx_t_8 = __pyx_v_numdays_fillup_next_year;
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3718, __pyx_L1_error)
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3718, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_4) {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_1 = __pyx_t_2;
        } else {
          __Pyx_INCREF(__pyx_t_8);
          __pyx_t_1 = __pyx_t_8;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_1;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF_SET(__pyx_v_numdays_fillup_next_year, __pyx_t_2);
        __pyx_t_2 = 0;
 3719: 
 3720: 	  ##note - beginning month = m; looped month = month_evaluate
 3721: 
 3722:       ##After we calculate what the pumping for SL based off projections from this month, we step the month
 3723:       ##forward and project new storage & pumping for the next month, and re-evaluate all releases.  From Oct-Mar, if
 3724:       ##any month triggers the pumping to stop, the pumping stops.  From June-Sept, if any month triggers the pumping, the
 3725: 	  ##pumping occurs
+3726:       month_evaluate += 1
    __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_month_evaluate, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3726, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF_SET(__pyx_v_month_evaluate, __pyx_t_2);
    __pyx_t_2 = 0;
+3727:       if month_evaluate > 11:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_month_evaluate, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3727, __pyx_L1_error)
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3727, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_4) {
/* … */
    }
+3728:         month_evaluate = 0
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_DECREF_SET(__pyx_v_month_evaluate, __pyx_int_0);
+3729:         cross_counter_y = 1
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_DECREF_SET(__pyx_v_cross_counter_y, __pyx_int_1);
+3730:         carryover_adjust = projected_carryover
      __Pyx_INCREF(__pyx_v_projected_carryover);
      __Pyx_DECREF_SET(__pyx_v_carryover_adjust, __pyx_v_projected_carryover);
+3731:       if month_evaluate == m-1:
    __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3731, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_month_evaluate, __pyx_t_2, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3731, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3731, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {
/* … */
    }
+3732:         end_counter = 1
      __pyx_v_end_counter = 1;
 3733: 
+3734:       if next_month_storage < 0.0 and cross_counter_y == 0:
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_next_month_storage, __pyx_float_0_0, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3734, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3734, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L20_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_cross_counter_y, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3734, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = __pyx_t_5;
    __pyx_L20_bool_binop_done:;
    if (__pyx_t_4) {
/* … */
    }
+3735:         tax_free_toggle_override = 1
      __pyx_v_tax_free_toggle_override = 1;
+3736:       if m == 7 or m == 8 or m == 9:
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_7, 7, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_8, 8, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L23_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = __pyx_t_5;
    __pyx_L23_bool_binop_done:;
    if (__pyx_t_4) {
/* … */
    }
+3737:         tax_free_toggle_override = 1
      __pyx_v_tax_free_toggle_override = 1;
+3738:       if month_evaluate == 9:
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_9, 9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3738, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_4) {
/* … */
    }
+3739:         expected_untaxed = max(expected_untaxed + min(next_month_storage, 0.0), 0.0)
      __pyx_t_6 = 0.0;
      __pyx_t_9 = 0.0;
      __Pyx_INCREF(__pyx_v_next_month_storage);
      __pyx_t_1 = __pyx_v_next_month_storage;
      __pyx_t_8 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_4) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3739, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Add(__pyx_v_expected_untaxed, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3739, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_4) {
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3739, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __pyx_t_8;
        __pyx_t_8 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_expected_untaxed, __pyx_t_1);
      __pyx_t_1 = 0;
+3740:         available_storage += min(next_month_storage, 0.0)
      __pyx_t_6 = 0.0;
      __Pyx_INCREF(__pyx_v_next_month_storage);
      __pyx_t_1 = __pyx_v_next_month_storage;
      __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3740, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3740, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3740, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_4) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3740, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_1);
        __pyx_t_2 = __pyx_t_1;
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_available_storage, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3740, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF_SET(__pyx_v_available_storage, __pyx_t_1);
      __pyx_t_1 = 0;
+3741:         if m < 4 or m > 9 or key == 'cvp':
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_m, __pyx_int_4, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3741, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (!__pyx_t_5) {
      } else {
        __pyx_t_4 = __pyx_t_5;
        goto __pyx_L28_bool_binop_done;
      }
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_m, __pyx_int_9, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3741, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (!__pyx_t_5) {
      } else {
        __pyx_t_4 = __pyx_t_5;
        goto __pyx_L28_bool_binop_done;
      }
      __pyx_t_5 = (__Pyx_PyUnicode_Equals(__pyx_v_key, __pyx_n_u_cvp, Py_EQ)); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3741, __pyx_L1_error)
      __pyx_t_4 = __pyx_t_5;
      __pyx_L28_bool_binop_done:;
      if (__pyx_t_4) {
/* … */
        goto __pyx_L27;
      }
+3742:           next_month_storage = max(next_month_storage, 0.0)
        __pyx_t_6 = 0.0;
        __Pyx_INCREF(__pyx_v_next_month_storage);
        __pyx_t_1 = __pyx_v_next_month_storage;
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3742, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3742, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3742, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_4) {
          __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3742, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_2 = __pyx_t_8;
          __pyx_t_8 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_2 = __pyx_t_1;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __pyx_t_2;
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_1);
        __pyx_t_1 = 0;
 3743:         else:
+3744:           next_month_storage = max(next_month_storage, 0.0)
      /*else*/ {
        __pyx_t_6 = 0.0;
        __Pyx_INCREF(__pyx_v_next_month_storage);
        __pyx_t_1 = __pyx_v_next_month_storage;
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3744, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_8, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3744, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 3744, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_4) {
          __pyx_t_3 = PyFloat_FromDouble(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3744, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_2 = __pyx_t_3;
          __pyx_t_3 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_1);
          __pyx_t_2 = __pyx_t_1;
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __pyx_t_2;
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF_SET(__pyx_v_next_month_storage, __pyx_t_1);
        __pyx_t_1 = 0;
      }
      __pyx_L27:;
+3745:         carryover_adjust = projected_carryover
      __Pyx_INCREF(__pyx_v_projected_carryover);
      __Pyx_DECREF_SET(__pyx_v_carryover_adjust, __pyx_v_projected_carryover);
+3746:         cross_counter_wy = 1
      __pyx_v_cross_counter_wy = 1;
 3747: 
+3748:       expected_demands = (month_demand[wyt][month_evaluate] + month_demand_must_fill[wyt][month_evaluate])/self.days_in_month[year_index+cross_counter_y][month_evaluate]
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_v_month_demand_must_fill, __pyx_v_wyt); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3748, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_expected_demands, __pyx_t_8);
    __pyx_t_8 = 0;
+3749:       expected_inflow = expected_pumping['gains'][month_evaluate]/self.days_in_month[year_index+cross_counter_y][month_evaluate]
    __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_1 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3749, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_t_3);
    __pyx_t_3 = 0;
+3750:       expected_untaxed += (expected_pumping['untaxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_untaxed); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Subtract(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_expected_untaxed, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3750, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_expected_untaxed, __pyx_t_2);
    __pyx_t_2 = 0;
+3751:       expected_taxed += (expected_pumping['taxed'][month_evaluate] - expected_pumping['gains'][month_evaluate])
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_taxed); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_gains); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_v_expected_taxed, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3751, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF_SET(__pyx_v_expected_taxed, __pyx_t_1);
    __pyx_t_1 = 0;
 3752: 	  #how much 'unstored' pumping can we expect into San Luis?
 3753:       #self.month_averages comes from self.predict_delta_gains
 3754: 	  #proj_surplus & proj_surplus2 are generated in the northern model, from 8RI regression in self.predict_delta_gains
+3755:       if month_evaluate == 3 or month_evaluate == 4:
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (!__pyx_t_5) {
    } else {
      __pyx_t_4 = __pyx_t_5;
      goto __pyx_L32_bool_binop_done;
    }
    __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_month_evaluate, __pyx_int_4, 4, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3755, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3755, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_4 = __pyx_t_5;
    __pyx_L32_bool_binop_done:;
    if (__pyx_t_4) {
/* … */
    }
+3756:         expected_inflow = 0.75
      __Pyx_INCREF(__pyx_float_0_75);
      __Pyx_DECREF_SET(__pyx_v_expected_inflow, __pyx_float_0_75);
 3757:       #expected monthly change in san luis storage
+3758:       net_monthly = (expected_inflow - expected_demands)*self.days_in_month[year_index+cross_counter_y][month_evaluate]
    __pyx_t_1 = PyNumber_Subtract(__pyx_v_expected_inflow, __pyx_v_expected_demands); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF_SET(__pyx_v_net_monthly, __pyx_t_8);
    __pyx_t_8 = 0;
+3759:       total_days_remaining += this_month_days
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_total_days_remaining, __pyx_v_this_month_days); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3759, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF_SET(__pyx_v_total_days_remaining, __pyx_t_8);
    __pyx_t_8 = 0;
+3760:       this_month_days = self.days_in_month[year_index+cross_counter_y][month_evaluate]
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_month_evaluate); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_this_month_days, __pyx_t_3);
    __pyx_t_3 = 0;
  }
 3761: 
+3762:     return max(pumping_toggle, pumping_toggle_override), max(tax_free_toggle, tax_free_toggle_override), article21, numdays_fillup, numdays_fillup_next_year
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_12 = __pyx_v_pumping_toggle_override;
  __pyx_t_10 = __pyx_v_pumping_toggle;
  if (((__pyx_t_12 > __pyx_t_10) != 0)) {
    __pyx_t_11 = __pyx_t_12;
  } else {
    __pyx_t_11 = __pyx_t_10;
  }
  __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_11 = __pyx_v_tax_free_toggle_override;
  __pyx_t_12 = __pyx_v_tax_free_toggle;
  if (((__pyx_t_11 > __pyx_t_12) != 0)) {
    __pyx_t_10 = __pyx_t_11;
  } else {
    __pyx_t_10 = __pyx_t_12;
  }
  __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_8 = PyTuple_New(5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3762, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_8, 1, __pyx_t_1);
  __Pyx_INCREF(__pyx_v_article21);
  __Pyx_GIVEREF(__pyx_v_article21);
  PyTuple_SET_ITEM(__pyx_t_8, 2, __pyx_v_article21);
  __Pyx_INCREF(__pyx_v_numdays_fillup);
  __Pyx_GIVEREF(__pyx_v_numdays_fillup);
  PyTuple_SET_ITEM(__pyx_t_8, 3, __pyx_v_numdays_fillup);
  __Pyx_INCREF(__pyx_v_numdays_fillup_next_year);
  __Pyx_GIVEREF(__pyx_v_numdays_fillup_next_year);
  PyTuple_SET_ITEM(__pyx_t_8, 4, __pyx_v_numdays_fillup_next_year);
  __pyx_t_3 = 0;
  __pyx_t_1 = 0;
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 3763: 
 3764: #####################################################################################################################
 3765: #####################################################################################################################
 3766: #####################################################################################################################
 3767: 
 3768: #####################################################################################################################
 3769: #############################  State Variables that use data from more than one obejct class#########################
 3770: #####################################################################################################################	  
+3771:   def project_urban_pumping(self, da, dowy, m, wateryear, year_index, total_delta_pumping, projected_allocation_cvp, sri):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_61project_urban_pumping(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_61project_urban_pumping = {"project_urban_pumping", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_61project_urban_pumping, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_61project_urban_pumping(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_da = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_v_year_index = 0;
  PyObject *__pyx_v_total_delta_pumping = 0;
  PyObject *__pyx_v_projected_allocation_cvp = 0;
  CYTHON_UNUSED PyObject *__pyx_v_sri = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("project_urban_pumping (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_da,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_wateryear,&__pyx_n_s_year_index,&__pyx_n_s_total_delta_pumping,&__pyx_n_s_projected_allocation_cvp,&__pyx_n_s_sri,0};
    PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_da)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 1); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 2); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 3); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 4); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 5); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_total_delta_pumping)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 6); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_projected_allocation_cvp)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 7); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sri)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, 8); __PYX_ERR(0, 3771, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "project_urban_pumping") < 0)) __PYX_ERR(0, 3771, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
    }
    __pyx_v_self = values[0];
    __pyx_v_da = values[1];
    __pyx_v_dowy = values[2];
    __pyx_v_m = values[3];
    __pyx_v_wateryear = values[4];
    __pyx_v_year_index = values[5];
    __pyx_v_total_delta_pumping = values[6];
    __pyx_v_projected_allocation_cvp = values[7];
    __pyx_v_sri = values[8];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("project_urban_pumping", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3771, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.project_urban_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_60project_urban_pumping(__pyx_self, __pyx_v_self, __pyx_v_da, __pyx_v_dowy, __pyx_v_m, __pyx_v_wateryear, __pyx_v_year_index, __pyx_v_total_delta_pumping, __pyx_v_projected_allocation_cvp, __pyx_v_sri);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_60project_urban_pumping(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_da, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_wateryear, PyObject *__pyx_v_year_index, PyObject *__pyx_v_total_delta_pumping, PyObject *__pyx_v_projected_allocation_cvp, CYTHON_UNUSED PyObject *__pyx_v_sri) {
  PyObject *__pyx_v_urban_list = NULL;
  PyObject *__pyx_v_projected_allocation = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_sri_estimate = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_start_of_month = NULL;
  PyObject *__pyx_v_monthloop = NULL;
  PyObject *__pyx_v_monthcounter = NULL;
  PyObject *__pyx_v_cross_counter_y = NULL;
  PyObject *__pyx_v_start_next_month = NULL;
  PyObject *__pyx_v_districts = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__55)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("project_urban_pumping", 0);
  __Pyx_TraceCall("project_urban_pumping", __pyx_f[0], 3771, 0, __PYX_ERR(0, 3771, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.project_urban_pumping", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_urban_list);
  __Pyx_XDECREF(__pyx_v_projected_allocation);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_sri_estimate);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_start_of_month);
  __Pyx_XDECREF(__pyx_v_monthloop);
  __Pyx_XDECREF(__pyx_v_monthcounter);
  __Pyx_XDECREF(__pyx_v_cross_counter_y);
  __Pyx_XDECREF(__pyx_v_start_next_month);
  __Pyx_XDECREF(__pyx_v_districts);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__119 = PyTuple_Pack(23, __pyx_n_s_self, __pyx_n_s_da, __pyx_n_s_dowy, __pyx_n_s_m, __pyx_n_s_wateryear, __pyx_n_s_year_index, __pyx_n_s_total_delta_pumping, __pyx_n_s_projected_allocation_cvp, __pyx_n_s_sri, __pyx_n_s_urban_list, __pyx_n_s_projected_allocation, __pyx_n_s_x, __pyx_n_s_sri_estimate, __pyx_n_s_district, __pyx_n_s_wyt, __pyx_n_s_y, __pyx_n_s_yy, __pyx_n_s_start_of_month, __pyx_n_s_monthloop, __pyx_n_s_monthcounter, __pyx_n_s_cross_counter_y, __pyx_n_s_start_next_month, __pyx_n_s_districts); if (unlikely(!__pyx_tuple__119)) __PYX_ERR(0, 3771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__119);
  __Pyx_GIVEREF(__pyx_tuple__119);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_61project_urban_pumping, 0, __pyx_n_s_Model_project_urban_pumping, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_project_urban_pumping, __pyx_t_2) < 0) __PYX_ERR(0, 3771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(9, 0, 23, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__119, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_project_urban_pumping, 3771, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 3771, __pyx_L1_error)
+3772:     urban_list = [self.socal, self.centralcoast, self.southbay]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_centralcoast); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyList_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3772, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_4, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_4, 2, __pyx_t_3);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_v_urban_list = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
+3773:     projected_allocation = {}
  __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_v_projected_allocation = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
+3774:     projected_allocation['swp'] = total_delta_pumping
  if (unlikely(PyDict_SetItem(__pyx_v_projected_allocation, __pyx_n_u_swp, __pyx_v_total_delta_pumping) < 0)) __PYX_ERR(0, 3774, __pyx_L1_error)
+3775:     projected_allocation['cvp'] = projected_allocation_cvp
  if (unlikely(PyDict_SetItem(__pyx_v_projected_allocation, __pyx_n_u_cvp, __pyx_v_projected_allocation_cvp) < 0)) __PYX_ERR(0, 3775, __pyx_L1_error)
+3776:     if dowy == 0:
  __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3776, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_5) {
/* … */
  }
+3777:       for x in range(0, len(self.socal.hist_demand_dict['annual_sorted'][dowy])):
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_6 = PyObject_Length(__pyx_t_3); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_3);
    __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3777, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3777, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3777, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3777, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3777, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_7(__pyx_t_4);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3777, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __pyx_L5_break:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3778:         if total_delta_pumping < self.socal.hist_demand_dict['annual_sorted'][dowy][x]:
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_annual_sorted); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_x); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyObject_RichCompare(__pyx_v_total_delta_pumping, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3778, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_5) {
/* … */
      }
+3779:           break
        goto __pyx_L5_break;
+3780:       self.k_close_wateryear = np.random.randint(0, len(self.socal.hist_demand_dict['sorted_index'][dowy]))
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_random); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_randint); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_sorted_index); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_6 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_6 == ((Py_ssize_t)-1))) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_int_0, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3780, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_int_0, __pyx_t_1};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 2+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3780, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(2+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_INCREF(__pyx_int_0);
      __Pyx_GIVEREF(__pyx_int_0);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_int_0);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear, __pyx_t_4) < 0) __PYX_ERR(0, 3780, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 3781: 
+3782:     for x in urban_list:
  __pyx_t_4 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_2 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3782, __pyx_L1_error)
    #else
    __pyx_t_2 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3782, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 3783:       #sri_estimate = (total_delta_pumping*x.delivery_percent_coefficient[0][dowy][0] + x.delivery_percent_coefficient[0][dowy][1] - x.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3784:       sri_estimate = (total_delta_pumping*x.delivery_percent_coefficient[0][dowy][0] + x.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_9, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_9, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3784, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_1);
    __pyx_t_1 = 0;
+3785:       x.annualdemand[0] = max(sri_estimate - x.ytd_pumping[0][wateryear], 0.0)
    __pyx_t_10 = 0.0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_2 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_5) {
      __pyx_t_3 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3785, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __pyx_t_3;
      __pyx_t_3 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_9);
      __pyx_t_1 = __pyx_t_9;
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __pyx_t_1;
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 0, __pyx_t_9, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 3785, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3786:     for x in self.city_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3786, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_9 = __pyx_t_4; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3786, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3786, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3786, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_4); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3786, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3786, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_7(__pyx_t_9);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3786, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3787:       for district in x.district_list:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3787, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_1 = __pyx_t_4; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3787, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3787, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3787, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_4); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3787, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3787, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3787, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 3788:         #sri_estimate = (total_delta_pumping*x.delivery_percent_coefficient[district][dowy][0] + x.delivery_percent_coefficient[district][dowy][1] - x.regression_errors[district][dowy][self.k_close_wateryear])*total_delta_pumping
+3789:         sri_estimate = (total_delta_pumping*x.delivery_percent_coefficient[district][dowy][0] + x.delivery_percent_coefficient[district][dowy][1])*total_delta_pumping
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_district); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3789, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_2);
      __pyx_t_2 = 0;
+3790:         x.annualdemand[district] = max(sri_estimate - x.ytd_pumping[district][wateryear], 1.0)
      __pyx_t_10 = 1.0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_wateryear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_4 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = PyObject_RichCompare(__pyx_t_4, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (__pyx_t_5) {
        __pyx_t_13 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_2 = __pyx_t_13;
        __pyx_t_13 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_2 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __pyx_t_2;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_district, __pyx_t_3) < 0)) __PYX_ERR(0, 3790, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 3791: 
+3792:     if da == 1:
  __pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_v_da, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3792, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3792, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (__pyx_t_5) {
/* … */
  }
 3793: 
+3794:       for wyt in ['W', 'AN', 'BN', 'D', 'C']:
    __pyx_t_9 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
    for (;;) {
      if (__pyx_t_6 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3794, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3794, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3795:         for y in urban_list:
      __pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
      for (;;) {
        if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3795, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3796:           y.monthlydemand[wyt] = np.zeros(12)
        __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = NULL;
        if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
          __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_13);
          if (likely(__pyx_t_2)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
            __Pyx_INCREF(__pyx_t_2);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_13, function);
          }
        }
        __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_int_12);
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_v_wyt, __pyx_t_3) < 0)) __PYX_ERR(0, 3796, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3797:       for y in self.city_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_1 = __pyx_t_9; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3797, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3797, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3797, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3797, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3797, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_7(__pyx_t_1);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3797, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3798:         y.monthlydemand = {}
      __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3798, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand, __pyx_t_9) < 0) __PYX_ERR(0, 3798, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3799:         for yy in y.district_list:
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3799, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
        __pyx_t_3 = __pyx_t_9; __Pyx_INCREF(__pyx_t_3); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3799, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_12 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3799, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_3))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3799, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3799, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3799, __pyx_L1_error)
            #else
            __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3799, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            #endif
          }
        } else {
          __pyx_t_9 = __pyx_t_12(__pyx_t_3);
          if (unlikely(!__pyx_t_9)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3799, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_9);
        }
        __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_9);
        __pyx_t_9 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3800:           y.monthlydemand[yy] = {}
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3800, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3800, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_v_yy, __pyx_t_9) < 0)) __PYX_ERR(0, 3800, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3801:           for wyt in ['W', 'AN', 'BN', 'D', 'C']:
        __pyx_t_9 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_9); __pyx_t_14 = 0;
        for (;;) {
          if (__pyx_t_14 >= 5) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3801, __pyx_L1_error)
          #else
          __pyx_t_13 = PySequence_ITEM(__pyx_t_9, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3801, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_13));
          __pyx_t_13 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3802:             y.monthlydemand[yy][wyt] = np.zeros(12)
          __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
            __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_4);
            if (likely(__pyx_t_2)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
              __Pyx_INCREF(__pyx_t_2);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_4, function);
            }
          }
          __pyx_t_13 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_int_12);
          __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_yy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_wyt, __pyx_t_13) < 0)) __PYX_ERR(0, 3802, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 3803: 
 3804: 
+3805:       start_of_month = 0
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_start_of_month = __pyx_int_0;
 3806:       ###Divide aqueduct branch pumping into 'monthly demands'
+3807:       for monthloop in range(0,12):
    for (__pyx_t_15 = 0; __pyx_t_15 < 12; __pyx_t_15+=1) {
      __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3807, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_monthloop, __pyx_t_1);
      __pyx_t_1 = 0;
+3808:         monthcounter = monthloop + 9
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_v_monthloop, __pyx_int_9, 9, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3808, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_monthcounter, __pyx_t_1);
      __pyx_t_1 = 0;
+3809:         if monthcounter > 11:
      __pyx_t_1 = PyObject_RichCompare(__pyx_v_monthcounter, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3809, __pyx_L1_error)
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3809, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {
/* … */
      }
+3810:           monthcounter -= 12
        __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_monthcounter, __pyx_int_12, 12, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3810, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF_SET(__pyx_v_monthcounter, __pyx_t_1);
        __pyx_t_1 = 0;
+3811:         if monthcounter < m-1:
      __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3811, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_monthcounter, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3811, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_5) {
/* … */
        goto __pyx_L27;
      }
+3812:           cross_counter_y = 1
        __Pyx_INCREF(__pyx_int_1);
        __Pyx_XDECREF_SET(__pyx_v_cross_counter_y, __pyx_int_1);
 3813:         else:
+3814:           cross_counter_y = 0
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __Pyx_XDECREF_SET(__pyx_v_cross_counter_y, __pyx_int_0);
      }
      __pyx_L27:;
+3815:         start_next_month = self.dowy_eom[year_index+cross_counter_y][monthcounter] + 1
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_dowy_eom); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = PyNumber_Add(__pyx_v_year_index, __pyx_v_cross_counter_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_monthcounter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_start_next_month, __pyx_t_9);
      __pyx_t_9 = 0;
+3816:         for wyt in ['W', 'AN', 'BN', 'D', 'C']:
      __pyx_t_9 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
      for (;;) {
        if (__pyx_t_6 >= 5) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3816, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3816, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_1));
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3817:           for y in urban_list:
        __pyx_t_1 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
        for (;;) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_3); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3817, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3817, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_3);
          __pyx_t_3 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 3818:             #sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[0][dowy][0] + y.delivery_percent_coefficient[0][dowy][1] - y.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3819:             sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[0][dowy][0] + y.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_13); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_13, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3819, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_2);
          __pyx_t_2 = 0;
 3820:             #if monthcounter >= 9:
 3821:               #if wateryear > 0:
 3822:                 #y.monthlydemand[wyt][monthcounter] += np.mean(y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(y.ytd_pumping[0][wateryear-1], 0.0)
 3823:               #else:
 3824:                 #y.monthlydemand[wyt][monthcounter] += np.mean(y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(y.initial_pumping, 0.0)
 3825:             #else:
+3826:             y.monthlydemand[wyt][monthcounter] += np.mean(y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(sri_estimate - y.ytd_pumping[0][wateryear], 0.0)
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_13 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_v_wyt); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_INCREF(__pyx_v_monthcounter);
          __pyx_t_2 = __pyx_v_monthcounter;
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_GetModuleGlobalName(__pyx_t_16, __pyx_n_s_np); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_mean); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetSlice(__pyx_t_19, 0, 0, &__pyx_v_start_of_month, &__pyx_v_start_next_month, NULL, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = NULL;
          if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_19)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_19);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
            }
          }
          __pyx_t_4 = (__pyx_t_19) ? __Pyx_PyObject_Call2Args(__pyx_t_17, __pyx_t_19, __pyx_t_16) : __Pyx_PyObject_CallOneArg(__pyx_t_17, __pyx_t_16);
          __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_10 = 0.0;
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_17, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_19 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_18 = PyObject_RichCompare(__pyx_t_19, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (__pyx_t_5) {
            __pyx_t_18 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3826, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_17 = __pyx_t_18;
            __pyx_t_18 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_16);
            __pyx_t_17 = __pyx_t_16;
          }
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = PyNumber_Multiply(__pyx_t_4, __pyx_t_17); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_2, __pyx_t_17) < 0)) __PYX_ERR(0, 3826, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+3827:           for y in self.city_list:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3827, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_13 = __pyx_t_1; __Pyx_INCREF(__pyx_t_13); __pyx_t_11 = 0;
          __pyx_t_7 = NULL;
        } else {
          __pyx_t_11 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3827, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_7 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3827, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_7)) {
            if (likely(PyList_CheckExact(__pyx_t_13))) {
              if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_13)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3827, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3827, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3827, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_13, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3827, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_7(__pyx_t_13);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3827, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+3828:             for districts in y.district_list:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
            __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_14 = 0;
            __pyx_t_12 = NULL;
          } else {
            __pyx_t_14 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3828, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __pyx_t_12 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3828, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          for (;;) {
            if (likely(!__pyx_t_12)) {
              if (likely(PyList_CheckExact(__pyx_t_2))) {
                if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3828, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              } else {
                if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 3828, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3828, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              }
            } else {
              __pyx_t_1 = __pyx_t_12(__pyx_t_2);
              if (unlikely(!__pyx_t_1)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3828, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_1);
            }
            __Pyx_XDECREF_SET(__pyx_v_districts, __pyx_t_1);
            __pyx_t_1 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3829:                 # district_object = self.district_keys[districts]
 3830:                 #sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[districts][dowy][0] + y.delivery_percent_coefficient[districts][dowy][1] - y.regression_errors[districts][dowy][self.k_close_wateryear])*total_delta_pumping
+3831:                 sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[districts][dowy][0] + y.delivery_percent_coefficient[districts][dowy][1])*total_delta_pumping
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_dowy); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_1, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_districts); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_dowy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_17, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = PyNumber_Add(__pyx_t_1, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = PyNumber_Multiply(__pyx_t_17, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3831, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_16);
            __pyx_t_16 = 0;
 3832:               #if monthcounter >= 9:
 3833:                 #if wateryear > 0:
 3834:                   #y.monthlydemand[districts][wyt][monthcounter] += np.mean(self.district_keys[districts].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(y.ytd_pumping[districts][wateryear-1], 0.0)
 3835:                 #else:
 3836:                   #y.monthlydemand[districts][wyt][monthcounter] += np.mean(self.district_keys[districts].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])max(y.initial_pumping[districts], 0.0)
 3837:               #else:
+3838:                 y.monthlydemand[districts][wyt][monthcounter] += np.mean(self.district_keys[districts].hist_demand_dict['daily_fractions'][self.k_close_wateryear][start_of_month:start_next_month])*max(sri_estimate - y.ytd_pumping[districts][wateryear], 0.0)
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_INCREF(__pyx_v_monthcounter);
            __pyx_t_17 = __pyx_v_monthcounter;
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_mean); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_districts); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_t_4); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_20, 0, 0, &__pyx_v_start_of_month, &__pyx_v_start_next_month, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
            __pyx_t_20 = NULL;
            if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_18))) {
              __pyx_t_20 = PyMethod_GET_SELF(__pyx_t_18);
              if (likely(__pyx_t_20)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
                __Pyx_INCREF(__pyx_t_20);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_18, function);
              }
            }
            __pyx_t_3 = (__pyx_t_20) ? __Pyx_PyObject_Call2Args(__pyx_t_18, __pyx_t_20, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_18, __pyx_t_4);
            __Pyx_XDECREF(__pyx_t_20); __pyx_t_20 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_10 = 0.0;
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_districts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_20 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            __pyx_t_19 = PyObject_RichCompare(__pyx_t_20, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
            __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (__pyx_t_5) {
              __pyx_t_19 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3838, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_18 = __pyx_t_19;
              __pyx_t_19 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_18 = __pyx_t_4;
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyNumber_Multiply(__pyx_t_3, __pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_17, __pyx_t_18) < 0)) __PYX_ERR(0, 3838, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
 3839: 
+3840:         start_of_month = start_next_month
      __Pyx_INCREF(__pyx_v_start_next_month);
      __Pyx_DECREF_SET(__pyx_v_start_of_month, __pyx_v_start_next_month);
    }
 3841: 
+3842:     for y in urban_list:
  __pyx_t_9 = __pyx_v_urban_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_6 = 0;
  for (;;) {
    if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_9)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_13 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_6); __Pyx_INCREF(__pyx_t_13); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3842, __pyx_L1_error)
    #else
    __pyx_t_13 = PySequence_ITEM(__pyx_t_9, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_13);
    __pyx_t_13 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+3843:       y.dailydemand[0] = 0.0
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3843, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (unlikely(__Pyx_SetItemInt(__pyx_t_13, 0, __pyx_float_0_0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 3843, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 3844: 
 3845:       #sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[0][dowy][0] + y.delivery_percent_coefficient[0][dowy][1] - y.regression_errors[0][dowy][self.k_close_wateryear])*total_delta_pumping
+3846:       sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[0][dowy][0] + y.delivery_percent_coefficient[0][dowy][1])*total_delta_pumping
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_16 = __Pyx_GetItemInt(__pyx_t_2, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_13, __pyx_t_16); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_16 = PyNumber_Multiply(__pyx_t_2, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3846, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_16);
    __pyx_t_16 = 0;
 3847:       #if monthcounter >= 9:
 3848:         #if wateryear > 0:
 3849:           #y.dailydemand[0] += max(y.ytd_pumping[0][wateryear-1], 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
 3850:           #y.dailydemand_start[0] += max(y.ytd_pumping[0][wateryear-1], 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
 3851:         #else:
 3852:           #y.dailydemand[0] += max(y.initial_pumping, 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
 3853:           #y.dailydemand_start[0] += max(y.initial_pumping, 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
 3854:       #else:
+3855:       y.dailydemand[0] += max(sri_estimate - y.ytd_pumping[0][wateryear], 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_11 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_11, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_10 = 0.0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_13, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_13); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_18 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_18, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {
      __pyx_t_4 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3855, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_13 = __pyx_t_4;
      __pyx_t_4 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_17);
      __pyx_t_13 = __pyx_t_17;
    }
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_dowy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_18 = PyNumber_Multiply(__pyx_t_13, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_11, __pyx_t_17, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 3855, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+3856:       y.dailydemand_start[0] += max(sri_estimate - y.ytd_pumping[0][wateryear], 0.0)*y.hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand_start); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_11 = 0;
    __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_16, __pyx_t_11, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_10 = 0.0;
    __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_18); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __pyx_t_13 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_13, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {
      __pyx_t_4 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_18 = __pyx_t_4;
      __pyx_t_4 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_18 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_Multiply(__pyx_t_18, __pyx_t_2); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_13); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_16, __pyx_t_11, __pyx_t_2, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 3856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
 3857: 
+3858:       y.ytd_pumping[0][wateryear] += y.dailydemand[0]
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_16, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_INCREF(__pyx_v_wateryear);
    __pyx_t_16 = __pyx_v_wateryear;
    __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_16); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_17, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_17);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_t_16, __pyx_t_17) < 0)) __PYX_ERR(0, 3858, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3859: 
+3860:     for y in self.city_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3860, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_2 = __pyx_t_9; __Pyx_INCREF(__pyx_t_2); __pyx_t_6 = 0;
    __pyx_t_7 = NULL;
  } else {
    __pyx_t_6 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3860, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_7)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3860, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_6); __Pyx_INCREF(__pyx_t_9); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 3860, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_2, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3860, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_7(__pyx_t_2);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3860, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3861:       for districts in y.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_16 = __pyx_t_9; __Pyx_INCREF(__pyx_t_16); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 3861, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_12 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3861, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_16))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_16)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3861, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3861, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_11); __Pyx_INCREF(__pyx_t_9); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 3861, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_16, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3861, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_12(__pyx_t_16);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3861, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_districts, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+3862:         y.dailydemand[districts] = 0.0
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3862, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_v_districts, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3862, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 3863:         # district_object = self.district_keys[districts]
 3864:         #sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[districts][dowy][0] + y.delivery_percent_coefficient[districts][dowy][1] - y.regression_errors[districts][dowy][self.k_close_wateryear])*total_delta_pumping
+3865:         sri_estimate = (total_delta_pumping*y.delivery_percent_coefficient[districts][dowy][0] + y.delivery_percent_coefficient[districts][dowy][1])*total_delta_pumping
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_9, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_Multiply(__pyx_v_total_delta_pumping, __pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_delivery_percent_coefficient); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_districts); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_dowy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_17, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = PyNumber_Add(__pyx_t_9, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = PyNumber_Multiply(__pyx_t_17, __pyx_v_total_delta_pumping); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3865, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_XDECREF_SET(__pyx_v_sri_estimate, __pyx_t_18);
      __pyx_t_18 = 0;
+3866:         y.dailydemand[districts] += max(sri_estimate- y.ytd_pumping[districts][wateryear], 0.0)*self.district_keys[districts].hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_INCREF(__pyx_v_districts);
      __pyx_t_17 = __pyx_v_districts;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_t_17); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = 0.0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_districts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_13); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_1, __pyx_t_4, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_5) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_13 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_13 = __pyx_t_4;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_districts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_13, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_t_17, __pyx_t_4) < 0)) __PYX_ERR(0, 3866, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3867:         y.dailydemand_start[districts] += max(sri_estimate -y.ytd_pumping[districts][wateryear], 0.0)*self.district_keys[districts].hist_demand_dict['daily_fractions'][self.k_close_wateryear][dowy]
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand_start); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_INCREF(__pyx_v_districts);
      __pyx_t_17 = __pyx_v_districts;
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_t_17); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_10 = 0.0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_districts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_wateryear); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_Subtract(__pyx_v_sri_estimate, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_13 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_3 = PyObject_RichCompare(__pyx_t_13, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_5) {
        __pyx_t_3 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3867, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_1 = __pyx_t_3;
        __pyx_t_3 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_9);
        __pyx_t_1 = __pyx_t_9;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_districts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_hist_demand_dict); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_daily_fractions); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_k_close_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = PyNumber_Multiply(__pyx_t_1, __pyx_t_9); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_13); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_t_17, __pyx_t_9) < 0)) __PYX_ERR(0, 3867, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3868:         y.ytd_pumping[districts][wateryear] += y.dailydemand[districts]
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_ytd_pumping); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_INCREF(__pyx_v_wateryear);
      __pyx_t_18 = __pyx_v_wateryear;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_districts); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_17, __pyx_t_18, __pyx_t_13) < 0)) __PYX_ERR(0, 3868, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 3869: 
 3870: 
 3871: 
+3872:   def agg_contract_demands(self, year_index, m, wyt_real):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_63agg_contract_demands(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_63agg_contract_demands = {"agg_contract_demands", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_63agg_contract_demands, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_63agg_contract_demands(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_year_index = 0;
  PyObject *__pyx_v_m = 0;
  CYTHON_UNUSED PyObject *__pyx_v_wyt_real = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("agg_contract_demands (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_year_index,&__pyx_n_s_m,&__pyx_n_s_wyt_real,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 4, 4, 1); __PYX_ERR(0, 3872, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 4, 4, 2); __PYX_ERR(0, 3872, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt_real)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 4, 4, 3); __PYX_ERR(0, 3872, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "agg_contract_demands") < 0)) __PYX_ERR(0, 3872, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_year_index = values[1];
    __pyx_v_m = values[2];
    __pyx_v_wyt_real = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("agg_contract_demands", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3872, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.agg_contract_demands", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_62agg_contract_demands(__pyx_self, __pyx_v_self, __pyx_v_year_index, __pyx_v_m, __pyx_v_wyt_real);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_62agg_contract_demands(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_year_index, PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt_real) {
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_v_res = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_total_alloc = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_total_frac = NULL;
  long __pyx_v_monthcounter;
  PyObject *__pyx_v_daysmonth = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__56)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("agg_contract_demands", 0);
  __Pyx_TraceCall("agg_contract_demands", __pyx_f[0], 3872, 0, __PYX_ERR(0, 3872, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.agg_contract_demands", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_total_alloc);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_total_frac);
  __Pyx_XDECREF(__pyx_v_daysmonth);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__120 = PyTuple_Pack(14, __pyx_n_s_self, __pyx_n_s_year_index, __pyx_n_s_m, __pyx_n_s_wyt_real, __pyx_n_s_wyt, __pyx_n_s_res, __pyx_n_s_x, __pyx_n_s_total_alloc, __pyx_n_s_yy, __pyx_n_s_total_frac, __pyx_n_s_monthcounter, __pyx_n_s_daysmonth, __pyx_n_s_xx, __pyx_n_s_district); if (unlikely(!__pyx_tuple__120)) __PYX_ERR(0, 3872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__120);
  __Pyx_GIVEREF(__pyx_tuple__120);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_63agg_contract_demands, 0, __pyx_n_s_Model_agg_contract_demands, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__56)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_agg_contract_demands, __pyx_t_2) < 0) __PYX_ERR(0, 3872, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__56 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__120, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_agg_contract_demands, 3872, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__56)) __PYX_ERR(0, 3872, __pyx_L1_error)
 3873:   #this function sums district demands by reservoir (i.e. - for each reservoir, the sum of the demand of all districts
 3874:   #with a contract that is held at that reservoir
+3875:     for wyt in ['W', 'AN', 'BN', 'D', 'C']:
  __pyx_t_1 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
  for (;;) {
    if (__pyx_t_2 >= 5) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_3); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 3875, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3876:       for res in self.reservoir_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3876, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 3876, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3876, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3876, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_3); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 3876, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3876, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 3876, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+3877:         res.monthly_demand[wyt] = np.zeros(12)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_int_12);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_wyt, __pyx_t_3) < 0)) __PYX_ERR(0, 3877, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3878:         res.monthly_demand_full[wyt] = np.zeros(12)
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3878, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3878, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_3 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_8, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12);
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3878, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3878, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_wyt, __pyx_t_3) < 0)) __PYX_ERR(0, 3878, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3879:         res.monthly_demand_must_fill[wyt] = np.zeros(12)
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_np); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_7, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_int_12);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_wyt, __pyx_t_3) < 0)) __PYX_ERR(0, 3879, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3880:         for x in self.district_list:
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
        __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3880, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3880, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3880, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3880, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_3); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3880, __pyx_L1_error)
            #else
            __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3880, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            #endif
          }
        } else {
          __pyx_t_3 = __pyx_t_10(__pyx_t_8);
          if (unlikely(!__pyx_t_3)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3880, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_3);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3881:           total_alloc = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3882:           for yy in self.reservoir_contract[res.key]:
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3882, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
          __pyx_t_7 = __pyx_t_11; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3882, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3882, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_7))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3882, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3882, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3882, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3882, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            }
          } else {
            __pyx_t_11 = __pyx_t_13(__pyx_t_7);
            if (unlikely(!__pyx_t_11)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3882, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_11);
          __pyx_t_11 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3883:             if res.key == "MIL":
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3883, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_MIL, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3883, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_14) {
/* … */
            goto __pyx_L11;
          }
+3884:               if x.annualdemand[0] > 0.0:
            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3884, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3884, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3884, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3884, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L12;
            }
+3885:                 total_frac = min(max(x.project_contract['friant1']*self.friant1.total,0.0)/x.annualdemand[0], 1.0)
              __pyx_t_15 = 1.0;
              __pyx_t_16 = 0.0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_friant1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_friant1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_11, __pyx_n_s_total); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = PyNumber_Multiply(__pyx_t_3, __pyx_t_17); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_3 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_18 = PyObject_RichCompare(__pyx_t_3, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__pyx_t_14) {
                __pyx_t_18 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3885, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_17 = __pyx_t_18;
                __pyx_t_18 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_17 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_3 = PyObject_RichCompare(__pyx_t_17, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3885, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (__pyx_t_14) {
                __pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3885, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_t_18 = __pyx_t_3;
                __pyx_t_3 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_18 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __pyx_t_18;
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_11);
              __pyx_t_11 = 0;
 3886:               else:
+3887:                 total_frac = 0.0
            /*else*/ {
              __Pyx_INCREF(__pyx_float_0_0);
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
            }
            __pyx_L12:;
+3888:             elif res.key == 'PFT':
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3888, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_PFT, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3888, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_14) {
/* … */
            goto __pyx_L11;
          }
+3889:               if x.annualdemand[0] > 0.0:
            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3889, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3889, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_RichCompare(__pyx_t_18, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3889, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3889, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L13;
            }
+3890:                 total_frac = min(max(x.projected_supply['kings']/x.annualdemand[0],0.0), 1.0)
              __pyx_t_15 = 1.0;
              __pyx_t_16 = 0.0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_kings); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_18 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_17 = PyObject_RichCompare(__pyx_t_18, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (__pyx_t_14) {
                __pyx_t_17 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_3 = __pyx_t_17;
                __pyx_t_17 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_3 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_INCREF(__pyx_t_3);
              __pyx_t_11 = __pyx_t_3;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_18 = PyObject_RichCompare(__pyx_t_17, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3890, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__pyx_t_14) {
                __pyx_t_18 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3890, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_3 = __pyx_t_18;
                __pyx_t_18 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_3 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __pyx_t_3;
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_11);
              __pyx_t_11 = 0;
 3891:               else:
+3892:                 total_frac = 0.0
            /*else*/ {
              __Pyx_INCREF(__pyx_float_0_0);
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
            }
            __pyx_L13:;
+3893:             elif res.key == 'KWH':
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3893, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_11, __pyx_n_u_KWH, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3893, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          if (__pyx_t_14) {
/* … */
            goto __pyx_L11;
          }
+3894:               if x.annualdemand[0] > 0.0:
            __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3894, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3894, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __pyx_t_11 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3894, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3894, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L14;
            }
+3895:                 total_frac = min(max(x.projected_supply['kaweah']/x.annualdemand[0],0.0), 1.0)
              __pyx_t_15 = 1.0;
              __pyx_t_16 = 0.0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_kaweah); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_11, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyNumber_Divide(__pyx_t_3, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_3 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_17 = PyObject_RichCompare(__pyx_t_3, __pyx_t_11, Py_GT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (__pyx_t_14) {
                __pyx_t_17 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3895, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_18 = __pyx_t_17;
                __pyx_t_17 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_18 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_INCREF(__pyx_t_18);
              __pyx_t_11 = __pyx_t_18;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_3 = PyObject_RichCompare(__pyx_t_17, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3895, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (__pyx_t_14) {
                __pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3895, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_t_18 = __pyx_t_3;
                __pyx_t_3 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_11);
                __pyx_t_18 = __pyx_t_11;
              }
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __pyx_t_18;
              __Pyx_INCREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_11);
              __pyx_t_11 = 0;
 3896:               else:
+3897:                 total_frac = 0.0
            /*else*/ {
              __Pyx_INCREF(__pyx_float_0_0);
              __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_0_0);
            }
            __pyx_L14:;
 3898: 
 3899:             else:
+3900:               total_frac = 1.0
          /*else*/ {
            __Pyx_INCREF(__pyx_float_1_0);
            __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_float_1_0);
          }
          __pyx_L11:;
+3901:           if x.reservoir_contract[res.key] == 1:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3901, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3901, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (__pyx_t_14) {
/* … */
        }
 3902: 
+3903:             for monthcounter in range(0,12):
          for (__pyx_t_19 = 0; __pyx_t_19 < 12; __pyx_t_19+=1) {
            __pyx_v_monthcounter = __pyx_t_19;
+3904:               if monthcounter >= m-1:
            __pyx_t_11 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3904, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __pyx_t_18 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3904, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_7 = PyObject_RichCompare(__pyx_t_11, __pyx_t_18, Py_GE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3904, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3904, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L18;
            }
+3905:                 daysmonth = self.days_in_month[year_index][monthcounter]
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3905, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_year_index); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3905, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3905, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_7);
              __pyx_t_7 = 0;
 3906:               else:
+3907:                 daysmonth = self.days_in_month[year_index+1][monthcounter]
            /*else*/ {
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3907, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_18 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3907, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_18); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3907, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_11, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3907, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_18);
              __pyx_t_18 = 0;
            }
            __pyx_L18:;
+3908:               if x.must_fill == 1:
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_must_fill); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3908, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_11 = __Pyx_PyInt_EqObjC(__pyx_t_18, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3908, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3908, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L19;
            }
+3909:                 res.monthly_demand_must_fill[wyt][monthcounter] += x.monthlydemand[wyt][monthcounter]*daysmonth
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_v_wyt); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_18, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_11, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_18, __pyx_t_20, __pyx_t_7, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3909, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 3910:               else:
+3911:                 res.monthly_demand[wyt][monthcounter] += x.monthlydemand[wyt][monthcounter]*daysmonth*total_frac
            /*else*/ {
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_18, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_18 = __Pyx_GetItemInt(__pyx_t_7, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(!__pyx_v_total_frac)) { __Pyx_RaiseUnboundLocalError("total_frac"); __PYX_ERR(0, 3911, __pyx_L1_error) }
              __pyx_t_3 = PyNumber_Multiply(__pyx_t_11, __pyx_v_total_frac); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_7, __pyx_t_20, __pyx_t_11, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3911, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3912:                 res.monthly_demand_full[wyt][monthcounter] += x.monthlydemand[wyt][monthcounter]*daysmonth
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_11, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_18); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_11, __pyx_t_20, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3912, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            }
            __pyx_L19:;
          }
+3913:         for x in self.private_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_11 = __pyx_t_8; __Pyx_INCREF(__pyx_t_11); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3913, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_10 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3913, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_11))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3913, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3913, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3913, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3913, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_10(__pyx_t_11);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3913, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+3914:           total_alloc = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3915:           total_frac = {}
        __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3915, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_8);
        __pyx_t_8 = 0;
+3916:           for xx in x.district_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3916, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_3 = __pyx_t_8; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3916, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3916, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_3))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3916, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3916, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3916, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3916, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_13(__pyx_t_3);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3916, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_8);
          __pyx_t_8 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3917:             for yy in self.reservoir_contract[res.key]:
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3917, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3917, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3917, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
            __pyx_t_18 = __pyx_t_7; __Pyx_INCREF(__pyx_t_18); __pyx_t_21 = 0;
            __pyx_t_22 = NULL;
          } else {
            __pyx_t_21 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3917, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_22 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3917, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          for (;;) {
            if (likely(!__pyx_t_22)) {
              if (likely(PyList_CheckExact(__pyx_t_18))) {
                if (__pyx_t_21 >= PyList_GET_SIZE(__pyx_t_18)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_21); __Pyx_INCREF(__pyx_t_7); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3917, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3917, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              } else {
                if (__pyx_t_21 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_21); __Pyx_INCREF(__pyx_t_7); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3917, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3917, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              }
            } else {
              __pyx_t_7 = __pyx_t_22(__pyx_t_18);
              if (unlikely(!__pyx_t_7)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3917, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_7);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_7);
            __pyx_t_7 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3918:               total_alloc += x.projected_supply[xx][yy.name]
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3918, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3918, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3918, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3918, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_alloc, __pyx_t_17); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3918, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF_SET(__pyx_v_total_alloc, __pyx_t_7);
            __pyx_t_7 = 0;
+3919:             if x.annualdemand[xx] > 0.0:
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3919, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3919, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_18 = PyObject_RichCompare(__pyx_t_7, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3919, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3919, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (__pyx_t_14) {
/* … */
            goto __pyx_L26;
          }
+3920:               total_frac[xx] = min(total_alloc/x.annualdemand[xx], 1.0)
            __pyx_t_15 = 1.0;
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyNumber_Divide(__pyx_v_total_alloc, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_17, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_14) {
              __pyx_t_8 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3920, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_7 = __pyx_t_8;
              __pyx_t_8 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_18);
              __pyx_t_7 = __pyx_t_18;
            }
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __pyx_t_7;
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_xx, __pyx_t_18) < 0)) __PYX_ERR(0, 3920, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 3921:             else:
+3922:               total_frac[xx] = 0.0
          /*else*/ {
            if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_xx, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3922, __pyx_L1_error)
          }
          __pyx_L26:;
+3923:           if x.reservoir_contract[res.key] == 1:
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3923, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3923, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3923, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3923, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3923, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        if (__pyx_t_14) {
/* … */
        }
+3924:             for monthcounter in range(0,12):
          for (__pyx_t_19 = 0; __pyx_t_19 < 12; __pyx_t_19+=1) {
            __pyx_v_monthcounter = __pyx_t_19;
+3925:               if monthcounter >= m-1:
            __pyx_t_18 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3925, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3925, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_18, __pyx_t_7, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3925, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3925, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L30;
            }
+3926:                 daysmonth = self.days_in_month[year_index][monthcounter]
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3926, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3926, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3926, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_3);
              __pyx_t_3 = 0;
 3927:               else:
+3928:                 daysmonth = self.days_in_month[year_index+1][monthcounter]
            /*else*/ {
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3928, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3928, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3928, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3928, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_7);
              __pyx_t_7 = 0;
            }
            __pyx_L30:;
+3929:               for district in x.district_list:
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3929, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
              __pyx_t_18 = __pyx_t_7; __Pyx_INCREF(__pyx_t_18); __pyx_t_12 = 0;
              __pyx_t_13 = NULL;
            } else {
              __pyx_t_12 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3929, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_13 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3929, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            for (;;) {
              if (likely(!__pyx_t_13)) {
                if (likely(PyList_CheckExact(__pyx_t_18))) {
                  if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_18)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3929, __pyx_L1_error)
                  #else
                  __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3929, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                } else {
                  if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3929, __pyx_L1_error)
                  #else
                  __pyx_t_7 = PySequence_ITEM(__pyx_t_18, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3929, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  #endif
                }
              } else {
                __pyx_t_7 = __pyx_t_13(__pyx_t_18);
                if (unlikely(!__pyx_t_7)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 3929, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_7);
              }
              __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_7);
              __pyx_t_7 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          }
+3930:                 res.monthly_demand[wyt][monthcounter] += x.monthlydemand[district][wyt][monthcounter]*daysmonth
              __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_district); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = PyNumber_Multiply(__pyx_t_17, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_20, __pyx_t_17, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3930, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3931:                 res.monthly_demand_full[wyt][monthcounter] += x.monthlydemand[district][wyt][monthcounter]*daysmonth
              __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_17, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_district); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_17, __pyx_t_20, __pyx_t_7, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3931, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 3932: 
 3933: 
 3934: 
+3935:         for x in self.city_list:
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3935, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
        __pyx_t_18 = __pyx_t_11; __Pyx_INCREF(__pyx_t_18); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_18 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3935, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_10 = Py_TYPE(__pyx_t_18)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3935, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_18))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyList_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3935, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3935, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_18)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_18, __pyx_t_9); __Pyx_INCREF(__pyx_t_11); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 3935, __pyx_L1_error)
            #else
            __pyx_t_11 = PySequence_ITEM(__pyx_t_18, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3935, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            #endif
          }
        } else {
          __pyx_t_11 = __pyx_t_10(__pyx_t_18);
          if (unlikely(!__pyx_t_11)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3935, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_11);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_11);
        __pyx_t_11 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
+3936:           total_alloc = 0.0
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_total_alloc, __pyx_float_0_0);
+3937:           total_frac = {}
        __pyx_t_11 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3937, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_XDECREF_SET(__pyx_v_total_frac, __pyx_t_11);
        __pyx_t_11 = 0;
+3938:           for xx in x.district_list:
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3938, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
          __pyx_t_17 = __pyx_t_11; __Pyx_INCREF(__pyx_t_17); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_17 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3938, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_13 = Py_TYPE(__pyx_t_17)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3938, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_17))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_17)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyList_GET_ITEM(__pyx_t_17, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_17, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3938, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_17)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_17, __pyx_t_12); __Pyx_INCREF(__pyx_t_11); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3938, __pyx_L1_error)
              #else
              __pyx_t_11 = PySequence_ITEM(__pyx_t_17, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3938, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              #endif
            }
          } else {
            __pyx_t_11 = __pyx_t_13(__pyx_t_17);
            if (unlikely(!__pyx_t_11)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 3938, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_11);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_11);
          __pyx_t_11 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+3939:             for yy in self.reservoir_contract[res.key]:
          __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3939, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3939, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3939, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
            __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_21 = 0;
            __pyx_t_22 = NULL;
          } else {
            __pyx_t_21 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3939, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_22 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 3939, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          for (;;) {
            if (likely(!__pyx_t_22)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_21 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_21); __Pyx_INCREF(__pyx_t_8); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3939, __pyx_L1_error)
                #else
                __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3939, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                #endif
              } else {
                if (__pyx_t_21 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_21); __Pyx_INCREF(__pyx_t_8); __pyx_t_21++; if (unlikely(0 < 0)) __PYX_ERR(0, 3939, __pyx_L1_error)
                #else
                __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_21); __pyx_t_21++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3939, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                #endif
              }
            } else {
              __pyx_t_8 = __pyx_t_22(__pyx_t_7);
              if (unlikely(!__pyx_t_8)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 3939, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_8);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_8);
            __pyx_t_8 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+3940:               total_alloc += x.projected_supply[xx][yy.name]
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3940, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3940, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_11);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_yy, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3940, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3940, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_total_alloc, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3940, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF_SET(__pyx_v_total_alloc, __pyx_t_8);
            __pyx_t_8 = 0;
+3941:             if x.annualdemand[xx] > 0.0:
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3941, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3941, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyObject_RichCompare(__pyx_t_8, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3941, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3941, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_14) {
/* … */
            goto __pyx_L39;
          }
+3942:               total_frac[xx] = min(total_alloc/x.annualdemand[xx], 1.0)
            __pyx_t_15 = 1.0;
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __Pyx_PyNumber_Divide(__pyx_v_total_alloc, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_3 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_11 = PyObject_RichCompare(__pyx_t_3, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
            if (__pyx_t_14) {
              __pyx_t_11 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3942, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_8 = __pyx_t_11;
              __pyx_t_11 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_7);
              __pyx_t_8 = __pyx_t_7;
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = __pyx_t_8;
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_xx, __pyx_t_7) < 0)) __PYX_ERR(0, 3942, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 3943:             else:
+3944:               total_frac[xx] = 0.0
          /*else*/ {
            if (unlikely(PyObject_SetItem(__pyx_v_total_frac, __pyx_v_xx, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3944, __pyx_L1_error)
          }
          __pyx_L39:;
+3945:           if x.reservoir_contract[res.key] == 1:
        __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3945, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3945, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3945, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3945, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3945, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__pyx_t_14) {
/* … */
        }
+3946:             for monthcounter in range(0,12):
          for (__pyx_t_19 = 0; __pyx_t_19 < 12; __pyx_t_19+=1) {
            __pyx_v_monthcounter = __pyx_t_19;
+3947:               if monthcounter >=m-1:
            __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3947, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_8 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3947, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_17 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_GE); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3947, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3947, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L43;
            }
+3948:                 daysmonth = self.days_in_month[year_index][monthcounter]
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3948, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_year_index); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3948, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3948, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_17);
              __pyx_t_17 = 0;
 3949:               else:
+3950:                 daysmonth = self.days_in_month[year_index+1][monthcounter]
            /*else*/ {
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3950, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3950, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3950, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3950, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_8);
              __pyx_t_8 = 0;
            }
            __pyx_L43:;
+3951:               for district in x.district_list:
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3951, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
              __pyx_t_7 = __pyx_t_8; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
              __pyx_t_13 = NULL;
            } else {
              __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3951, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3951, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            for (;;) {
              if (likely(!__pyx_t_13)) {
                if (likely(PyList_CheckExact(__pyx_t_7))) {
                  if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_8 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3951, __pyx_L1_error)
                  #else
                  __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3951, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  #endif
                } else {
                  if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 3951, __pyx_L1_error)
                  #else
                  __pyx_t_8 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3951, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  #endif
                }
              } else {
                __pyx_t_8 = __pyx_t_13(__pyx_t_7);
                if (unlikely(!__pyx_t_8)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 3951, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_8);
              }
              __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_8);
              __pyx_t_8 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          }
+3952:                 res.monthly_demand[wyt][monthcounter] += x.monthlydemand[district][wyt][monthcounter]*daysmonth
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_17 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_wyt); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_17, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_11, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_17, __pyx_t_20, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3952, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+3953:                 res.monthly_demand_full[wyt][monthcounter] += x.monthlydemand[district][wyt][monthcounter]*daysmonth
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_20 = __pyx_v_monthcounter;
              __pyx_t_17 = __Pyx_GetItemInt(__pyx_t_3, __pyx_t_20, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_district); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_wyt); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_11, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              __pyx_t_11 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_11);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_11); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
              if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_t_20, __pyx_t_8, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3953, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 3954: 
 3955: 
+3956:         for monthcounter in range(0,12):
      for (__pyx_t_19 = 0; __pyx_t_19 < 12; __pyx_t_19+=1) {
        __pyx_v_monthcounter = __pyx_t_19;
+3957:           if monthcounter >= m-1:
        __pyx_t_18 = __Pyx_PyInt_From_long(__pyx_v_monthcounter); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3957, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3957, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_3 = PyObject_RichCompare(__pyx_t_18, __pyx_t_7, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3957, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3957, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (__pyx_t_14) {
/* … */
          goto __pyx_L48;
        }
+3958:             daysmonth = self.days_in_month[year_index][monthcounter]
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3958, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_index); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3958, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_7, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3958, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_3);
          __pyx_t_3 = 0;
 3959:           else:
+3960:             daysmonth = self.days_in_month[year_index + 1][monthcounter]
        /*else*/ {
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3960, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3960, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3960, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3960, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_7);
          __pyx_t_7 = 0;
        }
        __pyx_L48:;
+3961:           if res.monthly_demand[wyt][monthcounter] > res.total_capacity*cfs_tafd*daysmonth:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_18, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_total_capacity); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = PyNumber_Multiply(__pyx_t_18, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyObject_RichCompare(__pyx_t_7, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3961, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_14) {
/* … */
        }
+3962:             res.monthly_demand[wyt][monthcounter] = res.total_capacity*cfs_tafd*daysmonth
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_total_capacity); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = PyNumber_Multiply(__pyx_t_7, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_8, __pyx_v_monthcounter, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3962, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+3963:           if res.monthly_demand_full[wyt][monthcounter] > res.total_capacity*cfs_tafd*daysmonth:
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_monthcounter, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_total_capacity); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_18 = PyNumber_Multiply(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_Multiply(__pyx_t_18, __pyx_v_daysmonth); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_18 = PyObject_RichCompare(__pyx_t_3, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 3963, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        if (__pyx_t_14) {
/* … */
        }
      }
+3964:             res.monthly_demand_full[wyt][monthcounter] = res.total_capacity*cfs_tafd*daysmonth
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_total_capacity); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_3 = PyNumber_Multiply(__pyx_t_18, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_18 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_wyt); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_18, __pyx_v_monthcounter, __pyx_t_7, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 3964, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 3965: 
+3966:   def appropriate_carryover(self, forgone, key, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_65appropriate_carryover(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_65appropriate_carryover = {"appropriate_carryover", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_65appropriate_carryover, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_65appropriate_carryover(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_forgone = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("appropriate_carryover (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_forgone,&__pyx_n_s_key,&__pyx_n_s_wateryear,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_forgone)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 4, 4, 1); __PYX_ERR(0, 3966, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 4, 4, 2); __PYX_ERR(0, 3966, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 4, 4, 3); __PYX_ERR(0, 3966, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "appropriate_carryover") < 0)) __PYX_ERR(0, 3966, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_forgone = values[1];
    __pyx_v_key = values[2];
    __pyx_v_wateryear = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("appropriate_carryover", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 3966, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.appropriate_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_64appropriate_carryover(__pyx_self, __pyx_v_self, __pyx_v_forgone, __pyx_v_key, __pyx_v_wateryear);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_64appropriate_carryover(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_forgone, PyObject *__pyx_v_key, PyObject *__pyx_v_wateryear) {
  PyObject *__pyx_v_remaining_carryover = NULL;
  PyObject *__pyx_v_remaining_balance = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_z = NULL;
  PyObject *__pyx_v_total_remaining = NULL;
  PyObject *__pyx_v_carryover_fraction = NULL;
  PyObject *__pyx_v_current_contract = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__57)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("appropriate_carryover", 0);
  __Pyx_TraceCall("appropriate_carryover", __pyx_f[0], 3966, 0, __PYX_ERR(0, 3966, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.appropriate_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_remaining_carryover);
  __Pyx_XDECREF(__pyx_v_remaining_balance);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XDECREF(__pyx_v_total_remaining);
  __Pyx_XDECREF(__pyx_v_carryover_fraction);
  __Pyx_XDECREF(__pyx_v_current_contract);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__121 = PyTuple_Pack(12, __pyx_n_s_self, __pyx_n_s_forgone, __pyx_n_s_key, __pyx_n_s_wateryear, __pyx_n_s_remaining_carryover, __pyx_n_s_remaining_balance, __pyx_n_s_y, __pyx_n_s_x, __pyx_n_s_z, __pyx_n_s_total_remaining, __pyx_n_s_carryover_fraction, __pyx_n_s_current_contract); if (unlikely(!__pyx_tuple__121)) __PYX_ERR(0, 3966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__121);
  __Pyx_GIVEREF(__pyx_tuple__121);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_65appropriate_carryover, 0, __pyx_n_s_Model_appropriate_carryover, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3966, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_appropriate_carryover, __pyx_t_2) < 0) __PYX_ERR(0, 3966, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(4, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__121, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_appropriate_carryover, 3966, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 3966, __pyx_L1_error)
 3967:     #if pumping is turned 'off' because of san luis storage conditions,
 3968: 	#any carryover water (up to the total potential pumping) is taken from the individual
 3969: 	#district that owned it and redistributed to all districts as this year's allocation
+3970:     remaining_carryover = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3970, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_remaining_carryover = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+3971:     remaining_balance = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3971, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_remaining_balance = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+3972:     for y in self.reservoir_contract[key]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3972, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3972, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3972, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3972, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3972, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3972, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3972, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3973:       remaining_carryover[y.name] = 0.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_2, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3973, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3974:       remaining_balance[y.name] = 0.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3974, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (unlikely(PyDict_SetItem(__pyx_v_remaining_balance, __pyx_t_2, __pyx_float_0_0) < 0)) __PYX_ERR(0, 3974, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3975:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3975, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3975, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3975, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3975, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 3976:       #find total amount of carryover that has not yet been delivered, by contract
+3977:       for y in remaining_carryover:
    __pyx_t_5 = 0;
    __pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3977, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_8;
    __pyx_t_8 = 0;
    while (1) {
      __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_8, NULL, NULL, __pyx_t_7);
      if (unlikely(__pyx_t_9 == 0)) break;
      if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3977, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
      __pyx_t_8 = 0;
+3978:         remaining_carryover[y] += max(x.carryover[y] - x.deliveries[y][wateryear], 0.0)
      __Pyx_INCREF(__pyx_v_y);
      __pyx_t_8 = __pyx_v_y;
      __pyx_t_10 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_8); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = 0.0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = PyNumber_Subtract(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_15 = PyObject_RichCompare(__pyx_t_13, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      if (__pyx_t_16) {
        __pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3978, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_12 = __pyx_t_15;
        __pyx_t_15 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_14);
        __pyx_t_12 = __pyx_t_14;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_8, __pyx_t_14) < 0)) __PYX_ERR(0, 3978, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3979:     for x in self.private_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3979, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3979, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3979, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3979, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3979, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3979, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3979, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3980:       for y in remaining_carryover:
    __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_5), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3980, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_8;
    __pyx_t_8 = 0;
    while (1) {
      __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_5, &__pyx_t_6, &__pyx_t_8, NULL, NULL, __pyx_t_7);
      if (unlikely(__pyx_t_9 == 0)) break;
      if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3980, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
      __pyx_t_8 = 0;
+3981:         for z in x.district_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3981, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_14 = __pyx_t_8; __Pyx_INCREF(__pyx_t_14); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3981, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_18 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3981, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_14))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 3981, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3981, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 3981, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3981, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_18(__pyx_t_14);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3981, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3982:           remaining_carryover[y] += max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_8 = __pyx_v_y;
        __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_11 = 0.0;
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_z); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_z); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = PyNumber_Subtract(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_10 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_19 = PyObject_RichCompare(__pyx_t_10, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        if (__pyx_t_16) {
          __pyx_t_19 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3982, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_13 = __pyx_t_19;
          __pyx_t_19 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_15);
          __pyx_t_13 = __pyx_t_15;
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_8, __pyx_t_15) < 0)) __PYX_ERR(0, 3982, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+3983:     for x in self.city_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3983, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3983, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 3983, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3983, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3983, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 3983, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3983, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 3983, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3984:       for y in remaining_carryover:
    __pyx_t_5 = 0;
    __pyx_t_14 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3984, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_14;
    __pyx_t_14 = 0;
    while (1) {
      __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_6, &__pyx_t_5, &__pyx_t_14, NULL, NULL, __pyx_t_7);
      if (unlikely(__pyx_t_9 == 0)) break;
      if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3984, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_14);
      __pyx_t_14 = 0;
+3985:         for z in x.district_list:
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3985, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
        __pyx_t_8 = __pyx_t_14; __Pyx_INCREF(__pyx_t_8); __pyx_t_17 = 0;
        __pyx_t_18 = NULL;
      } else {
        __pyx_t_17 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 3985, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      for (;;) {
        if (likely(!__pyx_t_18)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_14 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_14); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 3985, __pyx_L1_error)
            #else
            __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3985, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            #endif
          } else {
            if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_17); __Pyx_INCREF(__pyx_t_14); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 3985, __pyx_L1_error)
            #else
            __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3985, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            #endif
          }
        } else {
          __pyx_t_14 = __pyx_t_18(__pyx_t_8);
          if (unlikely(!__pyx_t_14)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 3985, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_14);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_14);
        __pyx_t_14 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+3986:           remaining_carryover[y] += max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_14 = __pyx_v_y;
        __pyx_t_15 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_11 = 0.0;
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_z); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_z); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_y); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_wateryear); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = PyNumber_Subtract(__pyx_t_13, __pyx_t_19); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_10 = PyObject_RichCompare(__pyx_t_13, __pyx_t_12, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_16) {
          __pyx_t_10 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 3986, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_19 = __pyx_t_10;
          __pyx_t_10 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_12);
          __pyx_t_19 = __pyx_t_12;
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_19); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_14, __pyx_t_12) < 0)) __PYX_ERR(0, 3986, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 3987: 
+3988:     total_remaining = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_total_remaining = __pyx_float_0_0;
+3989:     for y in remaining_carryover:
  __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_6), (&__pyx_t_7)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3989, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __pyx_t_2 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_6, &__pyx_t_3, &__pyx_t_1, NULL, NULL, __pyx_t_7);
    if (unlikely(__pyx_t_9 == 0)) break;
    if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3989, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
    __pyx_t_1 = 0;
 3990:       #total the carryover for each contract at that reservoir
+3991:       total_remaining += remaining_carryover[y]
    __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_v_total_remaining, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_total_remaining, __pyx_t_8);
    __pyx_t_8 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+3992:     if total_remaining > 0.0:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_total_remaining, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 3992, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_16) {
/* … */
  }
 3993:       #what % of carryover needs to be taken
+3994:       carryover_fraction = min(forgone/total_remaining, 1.0)
    __pyx_t_11 = 1.0;
    __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_v_forgone, __pyx_v_total_remaining); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 3994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3994, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_14 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3994, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 3994, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (__pyx_t_16) {
      __pyx_t_14 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3994, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_8 = __pyx_t_14;
      __pyx_t_14 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_8 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_8;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_carryover_fraction = __pyx_t_2;
    __pyx_t_2 = 0;
+3995:       for y in remaining_carryover:
    __pyx_t_6 = 0;
    __pyx_t_8 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_7)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3995, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_XDECREF(__pyx_t_2);
    __pyx_t_2 = __pyx_t_8;
    __pyx_t_8 = 0;
    while (1) {
      __pyx_t_9 = __Pyx_dict_iter_next(__pyx_t_2, __pyx_t_3, &__pyx_t_6, &__pyx_t_8, NULL, NULL, __pyx_t_7);
      if (unlikely(__pyx_t_9 == 0)) break;
      if (unlikely(__pyx_t_9 == -1)) __PYX_ERR(0, 3995, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
      __pyx_t_8 = 0;
+3996:         current_contract = self.contract_keys[y]
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3996, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3996, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_current_contract, __pyx_t_14);
      __pyx_t_14 = 0;
 3997:         #carryover contracts canceled
+3998:         current_contract.tot_carryover -= remaining_carryover[y]*carryover_fraction
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 3998, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3998, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_8, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3998, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_InPlaceSubtract(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 3998, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover, __pyx_t_8) < 0) __PYX_ERR(0, 3998, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 3999:         #'new allocation' credited to the contract
+4000:         self.pumping_turnback[key] -= remaining_carryover[y]*carryover_fraction
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_pumping_turnback); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_INCREF(__pyx_v_key);
      __pyx_t_1 = __pyx_v_key;
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_12 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_y); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_19 = PyNumber_Multiply(__pyx_t_12, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __pyx_t_12 = PyNumber_InPlaceSubtract(__pyx_t_14, __pyx_t_19); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_1, __pyx_t_12) < 0)) __PYX_ERR(0, 4000, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4001:         for x in self.district_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4001, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __pyx_t_5 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4001, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4001, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4001, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4001, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4001, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4001, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_4(__pyx_t_1);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4001, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4002:           x.carryover[y] -= max(x.carryover[y] - x.deliveries[y][wateryear], 0.0)*carryover_fraction
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_12 = __pyx_v_y;
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __pyx_t_11 = 0.0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = PyNumber_Subtract(__pyx_t_15, __pyx_t_14); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_15 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_15, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_16) {
          __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4002, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __pyx_t_13;
          __pyx_t_13 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_10);
          __pyx_t_14 = __pyx_t_10;
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = PyNumber_Multiply(__pyx_t_14, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_19, __pyx_t_10); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_12, __pyx_t_14) < 0)) __PYX_ERR(0, 4002, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4003:         for x in self.private_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4003, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __pyx_t_5 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_4 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4003, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_8))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4003, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_5); __Pyx_INCREF(__pyx_t_1); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4003, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4003, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_4(__pyx_t_8);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4003, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4004:           for z in x.district_list:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_12 = __pyx_t_1; __Pyx_INCREF(__pyx_t_12); __pyx_t_17 = 0;
          __pyx_t_18 = NULL;
        } else {
          __pyx_t_17 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4004, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_18 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4004, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_18)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4004, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_17); __Pyx_INCREF(__pyx_t_1); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4004, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4004, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_18(__pyx_t_12);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4004, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4005:             x.carryover[z][y] -= max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)*carryover_fraction
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_z); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_INCREF(__pyx_v_y);
          __pyx_t_1 = __pyx_v_y;
          __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_11 = 0.0;
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_z); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_y); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_z); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = PyNumber_Subtract(__pyx_t_19, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_19 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_20 = PyObject_RichCompare(__pyx_t_19, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          if (__pyx_t_16) {
            __pyx_t_20 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4005, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            __pyx_t_15 = __pyx_t_20;
            __pyx_t_20 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_13);
            __pyx_t_15 = __pyx_t_13;
          }
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = PyNumber_Multiply(__pyx_t_15, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = PyNumber_InPlaceSubtract(__pyx_t_10, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_1, __pyx_t_15) < 0)) __PYX_ERR(0, 4005, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4006:         for x in self.city_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4006, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_12 = __pyx_t_8; __Pyx_INCREF(__pyx_t_12); __pyx_t_5 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4006, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_4 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4006, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_12))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_12)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4006, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_12, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4006, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 4006, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_12, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4006, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_4(__pyx_t_12);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4006, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4007:           for z in x.district_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4007, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_14 = __pyx_t_8; __Pyx_INCREF(__pyx_t_14); __pyx_t_17 = 0;
          __pyx_t_18 = NULL;
        } else {
          __pyx_t_17 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_18 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4007, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_18)) {
            if (likely(PyList_CheckExact(__pyx_t_14))) {
              if (__pyx_t_17 >= PyList_GET_SIZE(__pyx_t_14)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4007, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4007, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_17 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_17); __Pyx_INCREF(__pyx_t_8); __pyx_t_17++; if (unlikely(0 < 0)) __PYX_ERR(0, 4007, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_14, __pyx_t_17); __pyx_t_17++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4007, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_18(__pyx_t_14);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4007, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_8);
          __pyx_t_8 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+4008:             x.carryover[z][y] -= max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)*carryover_fraction
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_INCREF(__pyx_v_y);
          __pyx_t_8 = __pyx_v_y;
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_11 = 0.0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_z); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_z); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_y); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = PyNumber_Subtract(__pyx_t_13, __pyx_t_20); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_13 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_19 = PyObject_RichCompare(__pyx_t_13, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_16 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_16 < 0)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          if (__pyx_t_16) {
            __pyx_t_19 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4008, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_20 = __pyx_t_19;
            __pyx_t_19 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_10);
            __pyx_t_20 = __pyx_t_10;
          }
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_10 = PyNumber_Multiply(__pyx_t_20, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_InPlaceSubtract(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_8, __pyx_t_20) < 0)) __PYX_ERR(0, 4008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 4009: 
+4010:   def update_carryover(self, spill, key, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_67update_carryover(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_67update_carryover = {"update_carryover", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_67update_carryover, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_67update_carryover(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_spill = 0;
  PyObject *__pyx_v_key = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_carryover (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_spill,&__pyx_n_s_key,&__pyx_n_s_wateryear,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_spill)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_carryover", 1, 4, 4, 1); __PYX_ERR(0, 4010, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_key)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_carryover", 1, 4, 4, 2); __PYX_ERR(0, 4010, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_carryover", 1, 4, 4, 3); __PYX_ERR(0, 4010, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_carryover") < 0)) __PYX_ERR(0, 4010, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_spill = values[1];
    __pyx_v_key = values[2];
    __pyx_v_wateryear = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_carryover", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4010, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_66update_carryover(__pyx_self, __pyx_v_self, __pyx_v_spill, __pyx_v_key, __pyx_v_wateryear);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_66update_carryover(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_spill, PyObject *__pyx_v_key, PyObject *__pyx_v_wateryear) {
  PyObject *__pyx_v_remaining_carryover = NULL;
  PyObject *__pyx_v_carryover_fraction = NULL;
  PyObject *__pyx_v_z = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_total_remaining = NULL;
  PyObject *__pyx_v_current_contract = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__58)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_carryover", 0);
  __Pyx_TraceCall("update_carryover", __pyx_f[0], 4010, 0, __PYX_ERR(0, 4010, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_carryover", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_remaining_carryover);
  __Pyx_XDECREF(__pyx_v_carryover_fraction);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_total_remaining);
  __Pyx_XDECREF(__pyx_v_current_contract);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__122 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_spill, __pyx_n_s_key, __pyx_n_s_wateryear, __pyx_n_s_remaining_carryover, __pyx_n_s_carryover_fraction, __pyx_n_s_z, __pyx_n_s_y, __pyx_n_s_x, __pyx_n_s_total_remaining, __pyx_n_s_current_contract); if (unlikely(!__pyx_tuple__122)) __PYX_ERR(0, 4010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__122);
  __Pyx_GIVEREF(__pyx_tuple__122);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_67update_carryover, 0, __pyx_n_s_Model_update_carryover, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__58)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4010, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_update_carryover, __pyx_t_2) < 0) __PYX_ERR(0, 4010, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__58 = (PyObject*)__Pyx_PyCode_New(4, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__122, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_update_carryover, 4010, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__58)) __PYX_ERR(0, 4010, __pyx_L1_error)
 4011:   #This function is meant to take a flood release and subtract it either from
 4012:   #existing carryover or projected contract deliveries
+4013:     remaining_carryover = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4013, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_remaining_carryover = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+4014:     carryover_fraction = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_carryover_fraction = __pyx_float_0_0;
 4015:     #loop through the canals associated with the reservoir, 'key'
+4016:     for z in self.reservoir_canal[key]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4016, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4016, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4016, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4016, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4016, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4016, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4016, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 4017:       #what contracts are deliveried on that canal
+4018:       for y in self.canal_contract[z.name]:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4018, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_5 = __pyx_t_6; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
      __pyx_t_8 = NULL;
    } else {
      __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4018, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4018, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_8)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4018, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4018, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4018, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4018, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_8(__pyx_t_5);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4018, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4019:         #initialize remaining carryover variable
 4020: 		#this also makes a list of all contracts w/carryover (for looping later)
+4021:         remaining_carryover[y.name] = 0.0
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4021, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_6, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4021, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 4022: 
 4023:     #find total carryover (district carryover balances that have not yet been delivered)
+4024:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4024, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4024, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4024, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4024, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4024, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4024, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4024, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4024, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4025:       for y in remaining_carryover:
    __pyx_t_7 = 0;
    __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4025, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_7, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4025, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_6);
      __pyx_t_6 = 0;
+4026:         remaining_carryover[y] += max(x.carryover[y] - x.deliveries[y][wateryear], 0.0)
      __Pyx_INCREF(__pyx_v_y);
      __pyx_t_6 = __pyx_v_y;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_12 = 0.0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_wateryear); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyNumber_Subtract(__pyx_t_14, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_14 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_16 = PyObject_RichCompare(__pyx_t_14, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      if (__pyx_t_17) {
        __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4026, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_13 = __pyx_t_16;
        __pyx_t_16 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_15);
        __pyx_t_13 = __pyx_t_15;
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_2, __pyx_t_13); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_6, __pyx_t_15) < 0)) __PYX_ERR(0, 4026, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4027:     for x in self.private_list:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4027, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
    __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4027, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4027, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4027, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4027, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_3); __Pyx_INCREF(__pyx_t_5); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4027, __pyx_L1_error)
        #else
        __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4027, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        #endif
      }
    } else {
      __pyx_t_5 = __pyx_t_4(__pyx_t_1);
      if (unlikely(!__pyx_t_5)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4027, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_5);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4028:       for y in remaining_carryover:
    __pyx_t_9 = 0;
    __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_7), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4028, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5);
    __pyx_t_5 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_7, &__pyx_t_9, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_6);
      __pyx_t_6 = 0;
+4029:         for z in x.district_list:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4029, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_15 = __pyx_t_6; __Pyx_INCREF(__pyx_t_15); __pyx_t_18 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4029, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_8 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4029, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_15))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4029, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_15, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4029, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4029, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_15, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4029, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_8(__pyx_t_15);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4029, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4030:           remaining_carryover[y] += max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_6 = __pyx_v_y;
        __pyx_t_13 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_12 = 0.0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_z); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_z); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_y); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_wateryear); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = PyNumber_Subtract(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_2 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_19 = PyObject_RichCompare(__pyx_t_2, __pyx_t_16, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        if (__pyx_t_17) {
          __pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4030, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_14 = __pyx_t_19;
          __pyx_t_19 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_16);
          __pyx_t_14 = __pyx_t_16;
        }
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_6, __pyx_t_16) < 0)) __PYX_ERR(0, 4030, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4031:     for x in self.city_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4031, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4031, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4031, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4031, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4031, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4031, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4032:       for y in remaining_carryover:
    __pyx_t_7 = 0;
    __pyx_t_15 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_XDECREF(__pyx_t_1);
    __pyx_t_1 = __pyx_t_15;
    __pyx_t_15 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_7, &__pyx_t_15, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4032, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_15);
      __pyx_t_15 = 0;
+4033:         for z in x.district_list:
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4033, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (likely(PyList_CheckExact(__pyx_t_15)) || PyTuple_CheckExact(__pyx_t_15)) {
        __pyx_t_6 = __pyx_t_15; __Pyx_INCREF(__pyx_t_6); __pyx_t_18 = 0;
        __pyx_t_8 = NULL;
      } else {
        __pyx_t_18 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_15); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4033, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_8 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4033, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      for (;;) {
        if (likely(!__pyx_t_8)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_18); __Pyx_INCREF(__pyx_t_15); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4033, __pyx_L1_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_6, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4033, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          } else {
            if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_15 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_18); __Pyx_INCREF(__pyx_t_15); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4033, __pyx_L1_error)
            #else
            __pyx_t_15 = PySequence_ITEM(__pyx_t_6, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4033, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            #endif
          }
        } else {
          __pyx_t_15 = __pyx_t_8(__pyx_t_6);
          if (unlikely(!__pyx_t_15)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4033, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_15);
        }
        __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_15);
        __pyx_t_15 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4034:           remaining_carryover[y] += max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_15 = __pyx_v_y;
        __pyx_t_16 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_12 = 0.0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_z); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_z); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_Subtract(__pyx_t_14, __pyx_t_19); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_14 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_2 = PyObject_RichCompare(__pyx_t_14, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_17) {
          __pyx_t_2 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4034, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_19 = __pyx_t_2;
          __pyx_t_2 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_13);
          __pyx_t_19 = __pyx_t_13;
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_16, __pyx_t_19); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_remaining_carryover, __pyx_t_15, __pyx_t_13) < 0)) __PYX_ERR(0, 4034, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 4035: 
 4036:     #sum carryover in all contracts on that reservoir
+4037:     total_remaining = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_total_remaining = __pyx_float_0_0;
+4038:     for y in remaining_carryover:#loop over all contracts w/carryover balances
  __pyx_t_3 = 0;
  __pyx_t_1 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4038, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __pyx_t_5 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_9, &__pyx_t_3, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4038, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
    __pyx_t_1 = 0;
+4039:       total_remaining += remaining_carryover[y]
    __pyx_t_1 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_y); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_total_remaining, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF_SET(__pyx_v_total_remaining, __pyx_t_6);
    __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4040: 
 4041:     #if there is carryover - what % needs to be taken to make up for spillage
+4042:     if total_remaining > 0.0:
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_total_remaining, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4042, __pyx_L1_error)
  __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4042, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_17) {
/* … */
    goto __pyx_L25;
  }
+4043:       carryover_fraction = min(spill/total_remaining, 1.0)
    __pyx_t_12 = 1.0;
    __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_v_spill, __pyx_v_total_remaining); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_15 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_15); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4043, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_15); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4043, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    if (__pyx_t_17) {
      __pyx_t_15 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4043, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_6 = __pyx_t_15;
      __pyx_t_15 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_6 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_t_6;
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF_SET(__pyx_v_carryover_fraction, __pyx_t_5);
    __pyx_t_5 = 0;
 4044: 
 4045:       #if there is more spill than remaining carryover, need to add to the contract adjustment (this amount is subtracted from total contract allocation)
+4046:       self.allocation_losses[key] += max(spill - total_remaining*carryover_fraction, 0.0)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_key);
    __pyx_t_6 = __pyx_v_key;
    __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_12 = 0.0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_total_remaining, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = PyNumber_Subtract(__pyx_v_spill, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_16 = PyObject_RichCompare(__pyx_t_19, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (__pyx_t_17) {
      __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4046, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_1 = __pyx_t_16;
      __pyx_t_16 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_13);
      __pyx_t_1 = __pyx_t_13;
    }
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_13) < 0)) __PYX_ERR(0, 4046, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4047:       self.allocation_losses[key] += max(spill - total_remaining*carryover_fraction, 0.0)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_key);
    __pyx_t_6 = __pyx_v_key;
    __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = 0.0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_v_total_remaining, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_15 = PyNumber_Subtract(__pyx_v_spill, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_19 = PyObject_RichCompare(__pyx_t_16, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    if (__pyx_t_17) {
      __pyx_t_19 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4047, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_1 = __pyx_t_19;
      __pyx_t_19 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_15);
      __pyx_t_1 = __pyx_t_15;
    }
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_6, __pyx_t_15) < 0)) __PYX_ERR(0, 4047, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4048: 
+4049:       for y in remaining_carryover:#loop over all contracts w/carryover balances
    __pyx_t_9 = 0;
    __pyx_t_6 = __Pyx_dict_iterator(__pyx_v_remaining_carryover, 1, ((PyObject *)NULL), (&__pyx_t_3), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_5);
    __pyx_t_5 = __pyx_t_6;
    __pyx_t_6 = 0;
    while (1) {
      __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_3, &__pyx_t_9, &__pyx_t_6, NULL, NULL, __pyx_t_10);
      if (unlikely(__pyx_t_11 == 0)) break;
      if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 4049, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_6);
      __pyx_t_6 = 0;
 4050:         #reduce overall contract carryover balance
+4051:         current_contract = self.contract_keys[y]
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4051, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4051, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_current_contract, __pyx_t_15);
      __pyx_t_15 = 0;
+4052:         current_contract.tot_carryover -= remaining_carryover[y]*carryover_fraction
      __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4052, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_remaining_carryover, __pyx_v_y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4052, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_6, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4052, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_InPlaceSubtract(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4052, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_current_contract, __pyx_n_s_tot_carryover, __pyx_t_6) < 0) __PYX_ERR(0, 4052, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 4053:         #reduce individual contract carryover balance (only on undelivered carryover
+4054:         for x in self.district_list:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_7 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4054, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4054, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4054, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4054, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4054, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_4(__pyx_t_1);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4054, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4055:           x.carryover[y] -= max(x.carryover[y] - x.deliveries[y][wateryear], 0.0)*carryover_fraction
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_INCREF(__pyx_v_y);
        __pyx_t_15 = __pyx_v_y;
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_12 = 0.0;
        __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_y); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Subtract(__pyx_t_16, __pyx_t_19); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_16 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_14 = PyObject_RichCompare(__pyx_t_16, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (__pyx_t_17) {
          __pyx_t_14 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4055, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_19 = __pyx_t_14;
          __pyx_t_14 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_19 = __pyx_t_2;
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Multiply(__pyx_t_19, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __pyx_t_19 = PyNumber_InPlaceSubtract(__pyx_t_13, __pyx_t_2); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_15, __pyx_t_19) < 0)) __PYX_ERR(0, 4055, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4056:         for x in self.private_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4056, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_7 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4056, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_4 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4056, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4056, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4056, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_7); __Pyx_INCREF(__pyx_t_1); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4056, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4056, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_4(__pyx_t_6);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4056, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4057:           for z in x.district_list:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_15 = __pyx_t_1; __Pyx_INCREF(__pyx_t_15); __pyx_t_18 = 0;
          __pyx_t_8 = NULL;
        } else {
          __pyx_t_18 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4057, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __pyx_t_8 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4057, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_8)) {
            if (likely(PyList_CheckExact(__pyx_t_15))) {
              if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_15)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_18); __Pyx_INCREF(__pyx_t_1); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4057, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_18); __Pyx_INCREF(__pyx_t_1); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4057, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4057, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_8(__pyx_t_15);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4057, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+4058:             x.carryover[z][y] -= max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)*carryover_fraction
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_z); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_INCREF(__pyx_v_y);
          __pyx_t_1 = __pyx_v_y;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_12 = 0.0;
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_z); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_y); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_z); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_Subtract(__pyx_t_13, __pyx_t_16); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_13 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_20 = PyObject_RichCompare(__pyx_t_13, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_20); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_20); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          if (__pyx_t_17) {
            __pyx_t_20 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4058, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_20);
            __pyx_t_16 = __pyx_t_20;
            __pyx_t_20 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_14);
            __pyx_t_16 = __pyx_t_14;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_Multiply(__pyx_t_16, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = PyNumber_InPlaceSubtract(__pyx_t_2, __pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_1, __pyx_t_16) < 0)) __PYX_ERR(0, 4058, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4059:         for x in self.city_list:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4059, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_15 = __pyx_t_6; __Pyx_INCREF(__pyx_t_15); __pyx_t_7 = 0;
        __pyx_t_4 = NULL;
      } else {
        __pyx_t_7 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4059, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __pyx_t_4 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4059, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_4)) {
          if (likely(PyList_CheckExact(__pyx_t_15))) {
            if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4059, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_15, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4059, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_7); __Pyx_INCREF(__pyx_t_6); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4059, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_15, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4059, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_4(__pyx_t_15);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4059, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4060:           for z in x.district_list:
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4060, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
          __pyx_t_19 = __pyx_t_6; __Pyx_INCREF(__pyx_t_19); __pyx_t_18 = 0;
          __pyx_t_8 = NULL;
        } else {
          __pyx_t_18 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4060, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_8 = Py_TYPE(__pyx_t_19)->tp_iternext; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4060, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        for (;;) {
          if (likely(!__pyx_t_8)) {
            if (likely(PyList_CheckExact(__pyx_t_19))) {
              if (__pyx_t_18 >= PyList_GET_SIZE(__pyx_t_19)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_6 = PyList_GET_ITEM(__pyx_t_19, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4060, __pyx_L1_error)
              #else
              __pyx_t_6 = PySequence_ITEM(__pyx_t_19, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4060, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              #endif
            } else {
              if (__pyx_t_18 >= PyTuple_GET_SIZE(__pyx_t_19)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_18); __Pyx_INCREF(__pyx_t_6); __pyx_t_18++; if (unlikely(0 < 0)) __PYX_ERR(0, 4060, __pyx_L1_error)
              #else
              __pyx_t_6 = PySequence_ITEM(__pyx_t_19, __pyx_t_18); __pyx_t_18++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4060, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              #endif
            }
          } else {
            __pyx_t_6 = __pyx_t_8(__pyx_t_19);
            if (unlikely(!__pyx_t_6)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4060, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_6);
          }
          __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_6);
          __pyx_t_6 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+4061:             x.carryover[z][y] -= max(x.carryover[z][y] - x.deliveries[z][y][wateryear], 0.0)*carryover_fraction
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_z); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_INCREF(__pyx_v_y);
          __pyx_t_6 = __pyx_v_y;
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_12 = 0.0;
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_z); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_y); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_deliveries); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_z); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_20, __pyx_v_y); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_wateryear); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Subtract(__pyx_t_14, __pyx_t_20); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_14 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_13 = PyObject_RichCompare(__pyx_t_14, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_17) {
            __pyx_t_13 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_20 = __pyx_t_13;
            __pyx_t_13 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_2);
            __pyx_t_20 = __pyx_t_2;
          }
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_t_2 = PyNumber_Multiply(__pyx_t_20, __pyx_v_carryover_fraction); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __pyx_t_20 = PyNumber_InPlaceSubtract(__pyx_t_16, __pyx_t_2); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_6, __pyx_t_20) < 0)) __PYX_ERR(0, 4061, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 4062: 
 4063:     else:
 4064:       #if no carryover, just add the spill to the contract adjustment (this amount is subtracted from total contract allocation)
+4065:       self.allocation_losses[key] += max(spill, 0.0)
  /*else*/ {
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_allocation_losses); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_v_key);
    __pyx_t_15 = __pyx_v_key;
    __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_15); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_12 = 0.0;
    __Pyx_INCREF(__pyx_v_spill);
    __pyx_t_1 = __pyx_v_spill;
    __pyx_t_20 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_20);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_20, __pyx_t_1, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
    __pyx_t_17 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_17 < 0)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_17) {
      __pyx_t_2 = PyFloat_FromDouble(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4065, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __pyx_t_2;
      __pyx_t_2 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_1);
      __pyx_t_6 = __pyx_t_1;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_15, __pyx_t_1) < 0)) __PYX_ERR(0, 4065, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L25:;
 4066: 
+4067:   def find_recharge_bank(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_69find_recharge_bank(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_69find_recharge_bank = {"find_recharge_bank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_69find_recharge_bank, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_69find_recharge_bank(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_m = 0;
  CYTHON_UNUSED PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_bank (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_m,&__pyx_n_s_wyt,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_bank", 1, 3, 3, 1); __PYX_ERR(0, 4067, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_bank", 1, 3, 3, 2); __PYX_ERR(0, 4067, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_bank") < 0)) __PYX_ERR(0, 4067, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_m = values[1];
    __pyx_v_wyt = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_recharge_bank", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4067, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_68find_recharge_bank(__pyx_self, __pyx_v_self, __pyx_v_m, __pyx_v_wyt);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_68find_recharge_bank(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt) {
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_member = NULL;
  PyObject *__pyx_v_num_districts = NULL;
  PyObject *__pyx_v_irr_district = NULL;
  PyObject *__pyx_v_res = NULL;
  PyObject *__pyx_v_decline_coef = NULL;
  PyObject *__pyx_v_m_counter = NULL;
  PyObject *__pyx_v_decline_counter = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__59)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_bank", 0);
  __Pyx_TraceCall("find_recharge_bank", __pyx_f[0], 4067, 0, __PYX_ERR(0, 4067, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_21);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_member);
  __Pyx_XDECREF(__pyx_v_num_districts);
  __Pyx_XDECREF(__pyx_v_irr_district);
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XDECREF(__pyx_v_decline_coef);
  __Pyx_XDECREF(__pyx_v_m_counter);
  __Pyx_XDECREF(__pyx_v_decline_counter);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__123 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_m, __pyx_n_s_wyt, __pyx_n_s_w, __pyx_n_s_member, __pyx_n_s_num_districts, __pyx_n_s_irr_district, __pyx_n_s_res, __pyx_n_s_decline_coef, __pyx_n_s_m_counter, __pyx_n_s_decline_counter); if (unlikely(!__pyx_tuple__123)) __PYX_ERR(0, 4067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__123);
  __Pyx_GIVEREF(__pyx_tuple__123);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_69find_recharge_bank, 0, __pyx_n_s_Model_find_recharge_bank, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4067, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_recharge_bank, __pyx_t_2) < 0) __PYX_ERR(0, 4067, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(3, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__123, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_recharge_bank, 4067, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 4067, __pyx_L1_error)
 4068: 
 4069:   ###this function projects the total GW recharge
 4070:   ###capacity in each waterbank out 12 months, and then allocates
 4071:   ###that capacity to individual districts based on their
 4072:   ###ownership stake in teh waterbank
 4073: 
+4074:     for w in self.waterbank_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4074, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4074, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4074, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4074, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4074, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4074, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 4075:     ##direct recharge capacity is directly related to
 4076:     ##how long the banks have been used continuously
 4077:       #this month use tracks if the bank has been used in the past month
+4078:       if w.thismonthuse == 1:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_thismonthuse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4078, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4078, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4078, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_6) {
/* … */
      goto __pyx_L5;
    }
+4079:         w.monthusecounter += 1
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4079, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4079, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_t_1) < 0) __PYX_ERR(0, 4079, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4080:         w.monthemptycounter = 0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter, __pyx_int_0) < 0) __PYX_ERR(0, 4080, __pyx_L1_error)
+4081:         if w.monthusecounter > 11:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4081, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4081, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4081, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {
/* … */
      }
+4082:           w.monthusecounter = 11
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_int_11) < 0) __PYX_ERR(0, 4082, __pyx_L1_error)
 4083:         #this function describes how recharge rate declines over time
+4084:         w.recharge_rate *= w.recharge_decline[w.monthusecounter]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceMultiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_7) < 0) __PYX_ERR(0, 4084, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4085:       else:
 4086:       #in order for recharge rate to 'bounce back', needs 3 months of 
 4087:       #continuous non-use
+4088:         w.monthemptycounter += 1
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_7, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4088, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter, __pyx_t_8) < 0) __PYX_ERR(0, 4088, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4089:         if w.monthemptycounter == 3:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4089, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4089, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4089, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_6) {
/* … */
      }
    }
    __pyx_L5:;
+4090:           w.monthusecounter = 0
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_int_0) < 0) __PYX_ERR(0, 4090, __pyx_L1_error)
+4091:           w.recharge_rate = w.initial_recharge*cfs_tafd
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_initial_recharge); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4091, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_5) < 0) __PYX_ERR(0, 4091, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4092:       w.thismonthuse = 0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_thismonthuse, __pyx_int_0) < 0) __PYX_ERR(0, 4092, __pyx_L1_error)
 4093:       #if m == 10:
 4094:         #w.recharge_rate = w.initial_recharge*cfs_tafd
 4095: 	  ###distribute this recharge capacity among districts (based on ownership share)
+4096:       for member in w.participant_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4096, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_9 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_9 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4096, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4096, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4096, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4096, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_9); __Pyx_INCREF(__pyx_t_5); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4096, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4096, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_10(__pyx_t_8);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4096, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4097:         num_districts = self.district_keys_len[member]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_member); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4097, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_7);
      __pyx_t_7 = 0;
+4098:         for irr_district in self.district_keys[member]:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4098, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_member); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4098, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4098, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4098, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4098, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4098, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4098, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4098, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_12(__pyx_t_7);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4098, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4099:           irr_district.total_banked_storage += w.banked[member]
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_total_banked_storage); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_banked); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4099, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_total_banked_storage, __pyx_t_1) < 0) __PYX_ERR(0, 4099, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4100:           irr_district.max_direct_recharge[0] += w.ownership[member]*w.recharge_rate/num_districts
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_14 = 0;
        __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_14, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_ownership); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_member); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_15);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_16 = PyNumber_Multiply(__pyx_t_15, __pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_16, __pyx_v_num_districts); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_14, __pyx_t_16, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4100, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4101:           for res in self.reservoir_list:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4101, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_16 = __pyx_t_1; __Pyx_INCREF(__pyx_t_16); __pyx_t_14 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_14 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4101, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4101, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_16))) {
              if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_16)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4101, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_16, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4101, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_14); __Pyx_INCREF(__pyx_t_1); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4101, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_16, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4101, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_17(__pyx_t_16);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4101, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+4102:             if irr_district.reservoir_contract[res.key] == 1:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_13, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4102, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_6) {
/* … */
          }
+4103:               res.max_direct_recharge[0] += w.ownership[member]*w.recharge_rate/num_districts
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_18 = 0;
            __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_5, __pyx_t_18, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_ownership); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_19 = PyNumber_Multiply(__pyx_t_15, __pyx_t_1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_v_num_districts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_t_18, __pyx_t_19, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4103, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4104: 		  ##each month of consecutive use results in the recharge capacity of the bank declining
 4105:           ##we want to know what is the recharge capacity available in the future, considering 
 4106:           ##continuous use from this point on
+4107:           decline_coef = 1.0
        __Pyx_INCREF(__pyx_float_1_0);
        __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4108:           for m_counter in range(1,12):
        for (__pyx_t_20 = 1; __pyx_t_20 < 12; __pyx_t_20+=1) {
          __pyx_t_16 = __Pyx_PyInt_From_long(__pyx_t_20); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4108, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_16);
          __pyx_t_16 = 0;
+4109:             decline_counter = w.monthusecounter + m_counter
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4109, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_5 = PyNumber_Add(__pyx_t_16, __pyx_v_m_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4109, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_5);
          __pyx_t_5 = 0;
+4110:             if decline_counter > 11:
          __pyx_t_5 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4110, __pyx_L1_error)
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4110, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_6) {
/* … */
          }
+4111:               decline_counter = 11
            __Pyx_INCREF(__pyx_int_11);
            __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_11);
+4112:             decline_coef *= w.recharge_decline[decline_counter]
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_decline_counter); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4112, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_5);
          __pyx_t_5 = 0;
+4113:             irr_district.max_direct_recharge[m_counter] += w.ownership[member]*w.recharge_rate*decline_coef/num_districts
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_INCREF(__pyx_v_m_counter);
          __pyx_t_16 = __pyx_v_m_counter;
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_ownership); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_15 = PyNumber_Multiply(__pyx_t_13, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_Multiply(__pyx_t_15, __pyx_v_decline_coef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          __pyx_t_15 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_num_districts); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_15); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_16, __pyx_t_1) < 0)) __PYX_ERR(0, 4113, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4114:             for res in self.reservoir_list:
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4114, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_16 = __pyx_t_5; __Pyx_INCREF(__pyx_t_16); __pyx_t_14 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_14 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4114, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_17 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4114, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_16))) {
                if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_16)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_14); __Pyx_INCREF(__pyx_t_5); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4114, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_16, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4114, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_14); __Pyx_INCREF(__pyx_t_5); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 4114, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_16, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4114, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_17(__pyx_t_16);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4114, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        }
+4115:               if irr_district.reservoir_contract[res.key] == 1:
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_15, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4115, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4115, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_6) {
/* … */
            }
+4116:                 res.max_direct_recharge[m_counter] += w.ownership[member]*w.recharge_rate*decline_coef/num_districts
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_INCREF(__pyx_v_m_counter);
              __pyx_t_15 = __pyx_v_m_counter;
              __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_15); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_ownership); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_member); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_21 = PyNumber_Multiply(__pyx_t_13, __pyx_t_19); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = PyNumber_Multiply(__pyx_t_21, __pyx_v_decline_coef); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              __pyx_t_21 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_v_num_districts); if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_21);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_21); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_21); __pyx_t_21 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_15, __pyx_t_19) < 0)) __PYX_ERR(0, 4116, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 4117: 
+4118:   def find_leiu_exchange(self, wateryear, dowy):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_71find_leiu_exchange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_71find_leiu_exchange = {"find_leiu_exchange", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_71find_leiu_exchange, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_71find_leiu_exchange(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_leiu_exchange (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_wateryear,&__pyx_n_s_dowy,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_leiu_exchange", 1, 3, 3, 1); __PYX_ERR(0, 4118, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_leiu_exchange", 1, 3, 3, 2); __PYX_ERR(0, 4118, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_leiu_exchange") < 0)) __PYX_ERR(0, 4118, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_wateryear = values[1];
    __pyx_v_dowy = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_leiu_exchange", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4118, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_leiu_exchange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_70find_leiu_exchange(__pyx_self, __pyx_v_self, __pyx_v_wateryear, __pyx_v_dowy);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_70find_leiu_exchange(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_wateryear, PyObject *__pyx_v_dowy) {
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_participant_object = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_v_contract_trade = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__60)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_leiu_exchange", 0);
  __Pyx_TraceCall("find_leiu_exchange", __pyx_f[0], 4118, 0, __PYX_ERR(0, 4118, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_leiu_exchange", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_participant_object);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XDECREF(__pyx_v_contract_trade);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__124 = PyTuple_Pack(9, __pyx_n_s_self, __pyx_n_s_wateryear, __pyx_n_s_dowy, __pyx_n_s_w, __pyx_n_s_xx, __pyx_n_s_participant_object, __pyx_n_s_y, __pyx_n_s_yy, __pyx_n_s_contract_trade); if (unlikely(!__pyx_tuple__124)) __PYX_ERR(0, 4118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__124);
  __Pyx_GIVEREF(__pyx_tuple__124);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_71find_leiu_exchange, 0, __pyx_n_s_Model_find_leiu_exchange, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__60)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4118, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_leiu_exchange, __pyx_t_2) < 0) __PYX_ERR(0, 4118, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__60 = (PyObject*)__Pyx_PyCode_New(3, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__124, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_leiu_exchange, 4118, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__60)) __PYX_ERR(0, 4118, __pyx_L1_error)
+4119:     for w in self.leiu_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4119, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4119, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4119, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4119, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4119, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4119, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4119, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4119, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4120:       for xx in w.participant_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4120, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4120, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4120, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4120, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4120, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4120, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4121:         participant_object = self.district_keys[xx]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4121, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_participant_object, __pyx_t_8);
      __pyx_t_8 = 0;
+4122:         for y in w.contract_list:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4122, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
        __pyx_t_1 = __pyx_t_8; __Pyx_INCREF(__pyx_t_1); __pyx_t_9 = 0;
        __pyx_t_10 = NULL;
      } else {
        __pyx_t_9 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4122, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4122, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      for (;;) {
        if (likely(!__pyx_t_10)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_9 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4122, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4122, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          } else {
            if (__pyx_t_9 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_9); __Pyx_INCREF(__pyx_t_8); __pyx_t_9++; if (unlikely(0 < 0)) __PYX_ERR(0, 4122, __pyx_L1_error)
            #else
            __pyx_t_8 = PySequence_ITEM(__pyx_t_1, __pyx_t_9); __pyx_t_9++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4122, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            #endif
          }
        } else {
          __pyx_t_8 = __pyx_t_10(__pyx_t_1);
          if (unlikely(!__pyx_t_8)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4122, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_8);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_8);
        __pyx_t_8 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4123:           for yy in participant_object.contract_list:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_object, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4123, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
          __pyx_t_11 = __pyx_t_8; __Pyx_INCREF(__pyx_t_11); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4123, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __pyx_t_13 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4123, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_11))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_11)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4123, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4123, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4123, __pyx_L1_error)
              #else
              __pyx_t_8 = PySequence_ITEM(__pyx_t_11, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4123, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              #endif
            }
          } else {
            __pyx_t_8 = __pyx_t_13(__pyx_t_11);
            if (unlikely(!__pyx_t_8)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4123, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_8);
          }
          __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_8);
          __pyx_t_8 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4124:             if yy == y:
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_yy, __pyx_v_y, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4124, __pyx_L1_error)
          __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4124, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_14) {
/* … */
          }
+4125:               if dowy < 180:
            __pyx_t_8 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_180, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4125, __pyx_L1_error)
            __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4125, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_14) {
/* … */
              goto __pyx_L12;
            }
+4126:                 contract_trade = self.contract_keys[y]
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4126, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4126, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_contract_trade, __pyx_t_15);
              __pyx_t_15 = 0;
+4127:                 if contract_trade.type == 'right':
              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_trade, __pyx_n_s_type); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4127, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_14 = (__Pyx_PyUnicode_Equals(__pyx_t_15, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4127, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              if (__pyx_t_14) {
/* … */
                goto __pyx_L13;
              }
+4128:                   participant_object.max_leiu_exchange += max(w.rights[y]['capacity'] * contract_trade.total * w.leiu_ownership[xx], 0.0)
                __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_15);
                __pyx_t_16 = 0.0;
                __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_rights); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_17, __pyx_n_u_capacity); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_trade, __pyx_n_s_total); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_18 = PyNumber_Multiply(__pyx_t_8, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = PyNumber_Multiply(__pyx_t_18, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_18 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_19 = PyObject_RichCompare(__pyx_t_18, __pyx_t_17, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                if (__pyx_t_14) {
                  __pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4128, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __pyx_t_8 = __pyx_t_19;
                  __pyx_t_19 = 0;
                } else {
                  __Pyx_INCREF(__pyx_t_17);
                  __pyx_t_8 = __pyx_t_17;
                }
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_8); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange, __pyx_t_17) < 0) __PYX_ERR(0, 4128, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
 4129:                 else:
+4130:                   participant_object.max_leiu_exchange += max(w.project_contract[y] * contract_trade.total * w.leiu_ownership[xx], 0.0)
              /*else*/ {
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_16 = 0.0;
                __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_15);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_contract_trade, __pyx_n_s_total); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_19 = PyNumber_Multiply(__pyx_t_15, __pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_15);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = PyNumber_Multiply(__pyx_t_19, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                __pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_18 = PyObject_RichCompare(__pyx_t_19, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                if (__pyx_t_14) {
                  __pyx_t_18 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4130, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_15 = __pyx_t_18;
                  __pyx_t_18 = 0;
                } else {
                  __Pyx_INCREF(__pyx_t_8);
                  __pyx_t_15 = __pyx_t_8;
                }
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
                if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange, __pyx_t_8) < 0) __PYX_ERR(0, 4130, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              }
              __pyx_L13:;
 4131:               else:
+4132:                 participant_object.max_leiu_exchange += max(w.projected_supply[y] * w.leiu_ownership[xx], 0.0)
            /*else*/ {
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_16 = 0.0;
              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_y); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __pyx_t_15 = PyNumber_Multiply(__pyx_t_17, __pyx_t_18); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_17 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_19 = PyObject_RichCompare(__pyx_t_17, __pyx_t_15, Py_GT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (__pyx_t_14) {
                __pyx_t_19 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4132, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_18 = __pyx_t_19;
                __pyx_t_19 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_15);
                __pyx_t_18 = __pyx_t_15;
              }
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
              __pyx_t_15 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_18); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_15);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__Pyx_PyObject_SetAttrStr(__pyx_v_participant_object, __pyx_n_s_max_leiu_exchange, __pyx_t_15) < 0) __PYX_ERR(0, 4132, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            }
            __pyx_L12:;
 4133: 
+4134:   def find_recharge_leiu(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_73find_recharge_leiu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_73find_recharge_leiu = {"find_recharge_leiu", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_73find_recharge_leiu, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_73find_recharge_leiu(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_leiu (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_m,&__pyx_n_s_wyt,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_leiu", 1, 3, 3, 1); __PYX_ERR(0, 4134, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_leiu", 1, 3, 3, 2); __PYX_ERR(0, 4134, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_leiu") < 0)) __PYX_ERR(0, 4134, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_m = values[1];
    __pyx_v_wyt = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_recharge_leiu", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4134, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_leiu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_72find_recharge_leiu(__pyx_self, __pyx_v_self, __pyx_v_m, __pyx_v_wyt);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_72find_recharge_leiu(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_m, PyObject *__pyx_v_wyt) {
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_bank_total_supply = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_member = NULL;
  PyObject *__pyx_v_num_districts = NULL;
  PyObject *__pyx_v_irr_district = NULL;
  PyObject *__pyx_v_res = NULL;
  PyObject *__pyx_v_decline_coef = NULL;
  PyObject *__pyx_v_m_counter = NULL;
  PyObject *__pyx_v_decline_counter = NULL;
  PyObject *__pyx_v_future_month = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__61)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_leiu", 0);
  __Pyx_TraceCall("find_recharge_leiu", __pyx_f[0], 4134, 0, __PYX_ERR(0, 4134, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_leiu", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_bank_total_supply);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_member);
  __Pyx_XDECREF(__pyx_v_num_districts);
  __Pyx_XDECREF(__pyx_v_irr_district);
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XDECREF(__pyx_v_decline_coef);
  __Pyx_XDECREF(__pyx_v_m_counter);
  __Pyx_XDECREF(__pyx_v_decline_counter);
  __Pyx_XDECREF(__pyx_v_future_month);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__125 = PyTuple_Pack(14, __pyx_n_s_self, __pyx_n_s_m, __pyx_n_s_wyt, __pyx_n_s_w, __pyx_n_s_bank_total_supply, __pyx_n_s_y, __pyx_n_s_member, __pyx_n_s_num_districts, __pyx_n_s_irr_district, __pyx_n_s_res, __pyx_n_s_decline_coef, __pyx_n_s_m_counter, __pyx_n_s_decline_counter, __pyx_n_s_future_month); if (unlikely(!__pyx_tuple__125)) __PYX_ERR(0, 4134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__125);
  __Pyx_GIVEREF(__pyx_tuple__125);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_73find_recharge_leiu, 0, __pyx_n_s_Model_find_recharge_leiu, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__61)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4134, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_recharge_leiu, __pyx_t_2) < 0) __PYX_ERR(0, 4134, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__61 = (PyObject*)__Pyx_PyCode_New(3, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__125, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_recharge_leiu, 4134, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__61)) __PYX_ERR(0, 4134, __pyx_L1_error)
 4135: 
 4136:   ###this function projects the total GW recharge
 4137:   ###capacity in each in-leiu banking district out 12 months, and then allocates
 4138:   ###that capacity to individual districts based on their
 4139:   ###ownership stake in teh waterbank
 4140: 
 4141:     #in-leiu banks combine both direct and in-leiu recharge
 4142:     #capacity, so both must be forecasting moving forward (12 months)	
+4143:     for w in self.leiu_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4143, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4143, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4143, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4143, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4143, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4144:       if w.thismonthuse == 1:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_thismonthuse); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4144, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4144, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_6) {
/* … */
      goto __pyx_L5;
    }
+4145:         w.monthusecounter += 1
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_5, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4145, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_t_1) < 0) __PYX_ERR(0, 4145, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4146:         w.monthemptycounter = 0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter, __pyx_int_0) < 0) __PYX_ERR(0, 4146, __pyx_L1_error)
+4147:         if w.monthusecounter > 11:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4147, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4147, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4147, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_6) {
/* … */
      }
+4148:           w.monthusecounter = 11
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_int_11) < 0) __PYX_ERR(0, 4148, __pyx_L1_error)
+4149:         w.recharge_rate *= w.recharge_decline[w.monthusecounter]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceMultiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_7) < 0) __PYX_ERR(0, 4149, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4150:       else:
+4151:         w.monthemptycounter += 1
    /*else*/ {
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_7, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4151, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter, __pyx_t_8) < 0) __PYX_ERR(0, 4151, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4152:         w.recharge_rate += max(w.in_district_direct_recharge*cfs_tafd - w.recharge_rate, 0.0)*0.5
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = 0.0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_Subtract(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_1 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = PyObject_RichCompare(__pyx_t_1, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_6) {
        __pyx_t_10 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4152, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_5 = __pyx_t_10;
        __pyx_t_10 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_7);
        __pyx_t_5 = __pyx_t_7;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_5, __pyx_float_0_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_5) < 0) __PYX_ERR(0, 4152, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4153:         if w.monthemptycounter == 3:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4153, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4153, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_6) {
/* … */
      }
    }
    __pyx_L5:;
+4154:           w.monthusecounter = 0
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter, __pyx_int_0) < 0) __PYX_ERR(0, 4154, __pyx_L1_error)
+4155:           w.recharge_rate = w.in_district_direct_recharge*cfs_tafd
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4155, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_8) < 0) __PYX_ERR(0, 4155, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4156:       w.thismonthuse = 0
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_thismonthuse, __pyx_int_0) < 0) __PYX_ERR(0, 4156, __pyx_L1_error)
+4157:       if m == 10:
    __pyx_t_8 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4157, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_6) {
/* … */
    }
+4158:         w.recharge_rate = w.in_district_direct_recharge*cfs_tafd
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate, __pyx_t_7) < 0) __PYX_ERR(0, 4158, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4159: 
 4160:       ##find district share of recharge capacity
+4161:       bank_total_supply = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_bank_total_supply, __pyx_float_0_0);
+4162:       for y in w.contract_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4162, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_5 = __pyx_t_7; __Pyx_INCREF(__pyx_t_5); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4162, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4162, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4162, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4162, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4162, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_12(__pyx_t_5);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4162, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4163:         bank_total_supply += w.projected_supply[y]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_y); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_bank_total_supply, __pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4163, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF_SET(__pyx_v_bank_total_supply, __pyx_t_7);
      __pyx_t_7 = 0;
+4164:       if w.key == "SMI":
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4164, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_SMI, Py_EQ)); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4164, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_6) {
/* … */
    }
+4165:         for member in w.participant_list:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4165, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_7 = __pyx_t_5; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4165, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4165, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4165, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4165, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_5); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 4165, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4165, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_12(__pyx_t_7);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4165, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4166:           num_districts = self.district_keys_len[member]
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_member); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4166, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_XDECREF_SET(__pyx_v_num_districts, __pyx_t_8);
        __pyx_t_8 = 0;
+4167:           for irr_district in self.district_keys[member]:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4167, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_member); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4167, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
          __pyx_t_8 = __pyx_t_5; __Pyx_INCREF(__pyx_t_8); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4167, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_14 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4167, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4167, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4167, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_13); __Pyx_INCREF(__pyx_t_5); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4167, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_8, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4167, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            }
          } else {
            __pyx_t_5 = __pyx_t_14(__pyx_t_8);
            if (unlikely(!__pyx_t_5)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4167, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_5);
          __pyx_t_5 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 4168:           #current direct recharge
+4169:             irr_district.max_direct_recharge[0] += w.leiu_ownership[member]*w.recharge_rate/num_districts
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_15 = 0;
          __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_5, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_17 = PyNumber_Multiply(__pyx_t_16, __pyx_t_1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_17, __pyx_v_num_districts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_t_15, __pyx_t_17, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4169, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4170:           #current in leiu recharge (based on irrigation demands of the in-leiu bank)
+4171:             if w.inleiubanked[member] < w.inleiucap[member]:
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_member); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_member); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyObject_RichCompare(__pyx_t_17, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4171, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          if (__pyx_t_6) {
/* … */
          }
+4172:               irr_district.max_leiu_recharge[0] += w.leiu_ownership[member]*w.monthlydemand[wyt][m-1]*(1.0 - min(bank_total_supply/w.annualdemand[0], 1.0))/num_districts
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_leiu_recharge); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_15 = 0;
            __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_5, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_member); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_17); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = PyNumber_Multiply(__pyx_t_10, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_9 = 1.0;
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_10 = __Pyx_GetItemInt(__pyx_t_18, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyNumber_Divide(__pyx_v_bank_total_supply, __pyx_t_10); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_16 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_19 = PyObject_RichCompare(__pyx_t_16, __pyx_t_18, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (__pyx_t_6) {
              __pyx_t_19 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4172, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_10 = __pyx_t_19;
              __pyx_t_19 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_18);
              __pyx_t_10 = __pyx_t_18;
            }
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_10, 1.0, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = PyNumber_Multiply(__pyx_t_17, __pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyNumber_Divide(__pyx_t_10, __pyx_v_num_districts); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_t_15, __pyx_t_10, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4172, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4173: 
+4174:             for res in self.reservoir_list:
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4174, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
            __pyx_t_10 = __pyx_t_5; __Pyx_INCREF(__pyx_t_10); __pyx_t_15 = 0;
            __pyx_t_20 = NULL;
          } else {
            __pyx_t_15 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4174, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_20 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4174, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          for (;;) {
            if (likely(!__pyx_t_20)) {
              if (likely(PyList_CheckExact(__pyx_t_10))) {
                if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_10)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4174, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_10, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              } else {
                if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_15); __Pyx_INCREF(__pyx_t_5); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4174, __pyx_L1_error)
                #else
                __pyx_t_5 = PySequence_ITEM(__pyx_t_10, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                #endif
              }
            } else {
              __pyx_t_5 = __pyx_t_20(__pyx_t_10);
              if (unlikely(!__pyx_t_5)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4174, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_5);
            }
            __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_5);
            __pyx_t_5 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4175:               if irr_district.reservoir_contract[res.key] == 1:
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4175, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4175, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_18); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4175, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4175, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4175, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            if (__pyx_t_6) {
/* … */
            }
+4176:                 if w.inleiubanked[member] < w.inleiucap[member]:
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_member); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_member); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = PyObject_RichCompare(__pyx_t_1, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_18); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4176, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__pyx_t_6) {
/* … */
              }
+4177:                   res.max_direct_recharge[0] += w.leiu_ownership[member]*w.recharge_rate/num_districts
                __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_21 = 0;
                __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_18, __pyx_t_21, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __pyx_t_19 = PyNumber_Multiply(__pyx_t_17, __pyx_t_1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_v_num_districts); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
                if (unlikely(__Pyx_SetItemInt(__pyx_t_18, __pyx_t_21, __pyx_t_19, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4177, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 4178: 
 4179: 		  ##each month of consecutive use results in the recharge capacity of the bank declining
 4180:           ##we want to know what is the recharge capacity available in the future, considering 
 4181:           ##continuous use from this point on
+4182:             decline_coef = 1.0
          __Pyx_INCREF(__pyx_float_1_0);
          __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4183:             for m_counter in range(1,12):
          for (__pyx_t_22 = 1; __pyx_t_22 < 12; __pyx_t_22+=1) {
            __pyx_t_10 = __Pyx_PyInt_From_long(__pyx_t_22); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4183, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_10);
            __pyx_t_10 = 0;
+4184:               decline_counter = w.monthusecounter + m_counter
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_18 = PyNumber_Add(__pyx_t_10, __pyx_v_m_counter); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4184, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_18);
            __pyx_t_18 = 0;
+4185:               future_month = m - 1 + m_counter
            __pyx_t_18 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4185, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_10 = PyNumber_Add(__pyx_t_18, __pyx_v_m_counter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4185, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_XDECREF_SET(__pyx_v_future_month, __pyx_t_10);
            __pyx_t_10 = 0;
+4186:               if future_month > 11:
            __pyx_t_10 = PyObject_RichCompare(__pyx_v_future_month, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4186, __pyx_L1_error)
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4186, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            if (__pyx_t_6) {
/* … */
            }
+4187:                 future_month -= 12
              __pyx_t_10 = __Pyx_PyInt_SubtractObjC(__pyx_v_future_month, __pyx_int_12, 12, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4187, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              __Pyx_DECREF_SET(__pyx_v_future_month, __pyx_t_10);
              __pyx_t_10 = 0;
+4188:               if decline_counter > 12:
            __pyx_t_10 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_12, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4188, __pyx_L1_error)
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4188, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            if (__pyx_t_6) {
/* … */
            }
+4189:                 decline_counter = 12
              __Pyx_INCREF(__pyx_int_12);
              __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_12);
+4190:               decline_coef *= w.recharge_decline[decline_counter]
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4190, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_decline_counter); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4190, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4190, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_10);
            __pyx_t_10 = 0;
 4191:             #future (12 months) direct recharge
+4192:               irr_district.max_direct_recharge[m_counter] += w.leiu_ownership[member]*w.recharge_rate*decline_coef/num_districts
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_INCREF(__pyx_v_m_counter);
            __pyx_t_18 = __pyx_v_m_counter;
            __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_member); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_17 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_Multiply(__pyx_t_17, __pyx_v_decline_coef); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_v_num_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_t_17); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_18, __pyx_t_1) < 0)) __PYX_ERR(0, 4192, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 4193:               #future (12 months) in leiu recharge
+4194:               if w.inleiubanked[member] < w.inleiucap[member]:
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_member); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_member); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = PyObject_RichCompare(__pyx_t_18, __pyx_t_1, Py_LT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4194, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            if (__pyx_t_6) {
/* … */
            }
+4195:                 irr_district.max_leiu_recharge[m_counter] += w.leiu_ownership[member]*w.monthlydemand[wyt][future_month]*(1.0 - min(bank_total_supply/w.annualdemand[0], 1.0))/num_districts
              __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_max_leiu_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              __Pyx_INCREF(__pyx_v_m_counter);
              __pyx_t_1 = __pyx_v_m_counter;
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_member); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_monthlydemand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_wyt); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_future_month); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __pyx_t_5 = PyNumber_Multiply(__pyx_t_19, __pyx_t_17); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_9 = 1.0;
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_annualdemand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_19 = __Pyx_GetItemInt(__pyx_t_17, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_v_bank_total_supply, __pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_16 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_23 = PyObject_RichCompare(__pyx_t_16, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              if (__pyx_t_6) {
                __pyx_t_23 = PyFloat_FromDouble(__pyx_t_9); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4195, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_19 = __pyx_t_23;
                __pyx_t_23 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_17);
                __pyx_t_19 = __pyx_t_17;
              }
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_19, 1.0, 0, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = PyNumber_Multiply(__pyx_t_5, __pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_17 = __Pyx_PyNumber_Divide(__pyx_t_19, __pyx_v_num_districts); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_1, __pyx_t_19) < 0)) __PYX_ERR(0, 4195, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4196:               for res in self.reservoir_list:
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4196, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
              __pyx_t_1 = __pyx_t_10; __Pyx_INCREF(__pyx_t_1); __pyx_t_15 = 0;
              __pyx_t_20 = NULL;
            } else {
              __pyx_t_15 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4196, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_20 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4196, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            for (;;) {
              if (likely(!__pyx_t_20)) {
                if (likely(PyList_CheckExact(__pyx_t_1))) {
                  if (__pyx_t_15 >= PyList_GET_SIZE(__pyx_t_1)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_10); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4196, __pyx_L1_error)
                  #else
                  __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4196, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_10);
                  #endif
                } else {
                  if (__pyx_t_15 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_15); __Pyx_INCREF(__pyx_t_10); __pyx_t_15++; if (unlikely(0 < 0)) __PYX_ERR(0, 4196, __pyx_L1_error)
                  #else
                  __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_15); __pyx_t_15++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4196, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_10);
                  #endif
                }
              } else {
                __pyx_t_10 = __pyx_t_20(__pyx_t_1);
                if (unlikely(!__pyx_t_10)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 4196, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_10);
              }
              __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_10);
              __pyx_t_10 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          }
+4197:                 if irr_district.reservoir_contract[res.key] == 1:
              __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4197, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4197, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4197, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = __Pyx_PyInt_EqObjC(__pyx_t_17, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4197, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4197, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              if (__pyx_t_6) {
/* … */
              }
+4198:                   if w.inleiubanked[member] < w.inleiucap[member]:
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_member); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_member); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = PyObject_RichCompare(__pyx_t_17, __pyx_t_10, Py_LT); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                __pyx_t_6 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 4198, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                if (__pyx_t_6) {
/* … */
                }
+4199:                     res.max_direct_recharge[m_counter] += w.leiu_ownership[member]*w.recharge_rate*decline_coef/num_districts
                  __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_INCREF(__pyx_v_m_counter);
                  __pyx_t_10 = __pyx_v_m_counter;
                  __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_t_10); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_member); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_5);
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_23 = PyNumber_Multiply(__pyx_t_5, __pyx_t_18); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_t_18 = PyNumber_Multiply(__pyx_t_23, __pyx_v_decline_coef); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_23 = __Pyx_PyNumber_Divide(__pyx_t_18, __pyx_v_num_districts); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_23); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_10, __pyx_t_18) < 0)) __PYX_ERR(0, 4199, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
                  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
 4200: 
+4201:   def find_recharge_indistrict(self,m,wyt):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_75find_recharge_indistrict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_75find_recharge_indistrict = {"find_recharge_indistrict", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_75find_recharge_indistrict, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_75find_recharge_indistrict(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_m = 0;
  CYTHON_UNUSED PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_indistrict (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_m,&__pyx_n_s_wyt,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_indistrict", 1, 3, 3, 1); __PYX_ERR(0, 4201, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_recharge_indistrict", 1, 3, 3, 2); __PYX_ERR(0, 4201, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_recharge_indistrict") < 0)) __PYX_ERR(0, 4201, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_m = values[1];
    __pyx_v_wyt = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_recharge_indistrict", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4201, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_indistrict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_74find_recharge_indistrict(__pyx_self, __pyx_v_self, __pyx_v_m, __pyx_v_wyt);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_74find_recharge_indistrict(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_m, CYTHON_UNUSED PyObject *__pyx_v_wyt) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_res = NULL;
  PyObject *__pyx_v_decline_coef = NULL;
  PyObject *__pyx_v_m_counter = NULL;
  PyObject *__pyx_v_decline_counter = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__62)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_recharge_indistrict", 0);
  __Pyx_TraceCall("find_recharge_indistrict", __pyx_f[0], 4201, 0, __PYX_ERR(0, 4201, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_recharge_indistrict", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_res);
  __Pyx_XDECREF(__pyx_v_decline_coef);
  __Pyx_XDECREF(__pyx_v_m_counter);
  __Pyx_XDECREF(__pyx_v_decline_counter);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__126 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_m, __pyx_n_s_wyt, __pyx_n_s_x, __pyx_n_s_res, __pyx_n_s_decline_coef, __pyx_n_s_m_counter, __pyx_n_s_decline_counter); if (unlikely(!__pyx_tuple__126)) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__126);
  __Pyx_GIVEREF(__pyx_tuple__126);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_75find_recharge_indistrict, 0, __pyx_n_s_Model_find_recharge_indistrict, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__62)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_recharge_indistrict, __pyx_t_2) < 0) __PYX_ERR(0, 4201, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__62 = (PyObject*)__Pyx_PyCode_New(3, 0, 8, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__126, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_recharge_indistrict, 4201, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__62)) __PYX_ERR(0, 4201, __pyx_L1_error)
 4202: 
 4203:   ###this function projects the total GW recharge
 4204:   ###capacity within the boundaries of each district,
 4205:   ###then adds that recharge to the expected recharge from
 4206:   ###banking opportunities
 4207: 
+4208:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4208, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4208, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4208, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4208, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4208, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4208, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4208, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4209:       if x.in_district_storage > 0.0 and not x.in_leiu_banking:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_district_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_1, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4209, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4209, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_7) {
    } else {
      __pyx_t_5 = __pyx_t_7;
      goto __pyx_L6_bool_binop_done;
    }
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4209, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 4209, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_8 = ((!__pyx_t_7) != 0);
    __pyx_t_5 = __pyx_t_8;
    __pyx_L6_bool_binop_done:;
    if (__pyx_t_5) {
/* … */
    }
+4210:         if x.thismonthuse == 1:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_thismonthuse); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_6, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4210, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4210, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_5) {
/* … */
        goto __pyx_L8;
      }
+4211:           x.monthusecounter += 1
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4211, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4211, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter, __pyx_t_6) < 0) __PYX_ERR(0, 4211, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4212:           x.monthemptycounter = 0
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_monthemptycounter, __pyx_int_0) < 0) __PYX_ERR(0, 4212, __pyx_L1_error)
+4213:           if x.monthusecounter > 11:
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4213, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = PyObject_RichCompare(__pyx_t_6, __pyx_int_11, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4213, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4213, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_5) {
/* … */
        }
+4214:             x.monthusecounter = 11
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter, __pyx_int_11) < 0) __PYX_ERR(0, 4214, __pyx_L1_error)
+4215:           x.recharge_rate *= x.recharge_decline[x.monthusecounter]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_InPlaceMultiply(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate, __pyx_t_9) < 0) __PYX_ERR(0, 4215, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 4216:         else:
+4217:           x.monthemptycounter += 1
      /*else*/ {
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_t_9, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4217, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_monthemptycounter, __pyx_t_10) < 0) __PYX_ERR(0, 4217, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4218:           x.recharge_rate += max(x.in_district_direct_recharge*cfs_tafd - x.recharge_rate, 0.0)*0.5
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = 0.0;
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = PyNumber_Multiply(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyNumber_Subtract(__pyx_t_6, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_6 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_12 = PyObject_RichCompare(__pyx_t_6, __pyx_t_9, Py_GT); __Pyx_XGOTREF(__pyx_t_12); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_12); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__pyx_t_5) {
          __pyx_t_12 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4218, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_1 = __pyx_t_12;
          __pyx_t_12 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_1 = __pyx_t_9;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_float_0_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate, __pyx_t_1) < 0) __PYX_ERR(0, 4218, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4219:           if x.monthemptycounter == 3:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthemptycounter); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4219, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_3, 3, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4219, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4219, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_5) {
/* … */
        }
      }
      __pyx_L8:;
+4220:             x.monthusecounter = 0
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter, __pyx_int_0) < 0) __PYX_ERR(0, 4220, __pyx_L1_error)
+4221:             x.recharge_rate = x.in_district_direct_recharge*cfs_tafd
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4221, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4221, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_10 = PyNumber_Multiply(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4221, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate, __pyx_t_10) < 0) __PYX_ERR(0, 4221, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4222:         x.thismonthuse = 0
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_thismonthuse, __pyx_int_0) < 0) __PYX_ERR(0, 4222, __pyx_L1_error)
+4223:         if m == 10:
      __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_v_m, __pyx_int_10, 10, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4223, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4223, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_5) {
/* … */
      }
+4224:           x.recharge_rate = x.in_district_direct_recharge*cfs_tafd
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_district_direct_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4224, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate, __pyx_t_9) < 0) __PYX_ERR(0, 4224, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4225:       if x.recharge_rate > 0.0:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4225, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_9, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4225, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4225, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
/* … */
    }
+4226:         x.max_direct_recharge[0] += x.recharge_rate
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_13 = 0;
      __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_13, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_12 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4226, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_13, __pyx_t_12, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4226, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4227:         for res in self.reservoir_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4227, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_12 = __pyx_t_1; __Pyx_INCREF(__pyx_t_12); __pyx_t_13 = 0;
        __pyx_t_14 = NULL;
      } else {
        __pyx_t_13 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4227, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_14 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4227, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_14)) {
          if (likely(PyList_CheckExact(__pyx_t_12))) {
            if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_12)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4227, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4227, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4227, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4227, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_14(__pyx_t_12);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4227, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4228:           if x.reservoir_contract[res.key] == 1:
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4228, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4228, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_10); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4228, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4228, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4228, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_5) {
/* … */
        }
+4229:             res.max_direct_recharge[0] += x.recharge_rate
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_15 = 0;
          __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_10, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4229, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (unlikely(__Pyx_SetItemInt(__pyx_t_10, __pyx_t_15, __pyx_t_6, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4229, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 4230: 
+4231:         decline_coef = 1.0
      __Pyx_INCREF(__pyx_float_1_0);
      __Pyx_XDECREF_SET(__pyx_v_decline_coef, __pyx_float_1_0);
+4232:         for m_counter in range(1,12):
      for (__pyx_t_16 = 1; __pyx_t_16 < 12; __pyx_t_16+=1) {
        __pyx_t_12 = __Pyx_PyInt_From_long(__pyx_t_16); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4232, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_XDECREF_SET(__pyx_v_m_counter, __pyx_t_12);
        __pyx_t_12 = 0;
+4233:           decline_counter = x.monthusecounter + m_counter
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_monthusecounter); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4233, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_10 = PyNumber_Add(__pyx_t_12, __pyx_v_m_counter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4233, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_XDECREF_SET(__pyx_v_decline_counter, __pyx_t_10);
        __pyx_t_10 = 0;
+4234:           if decline_counter > 12:
        __pyx_t_10 = PyObject_RichCompare(__pyx_v_decline_counter, __pyx_int_12, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4234, __pyx_L1_error)
        __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4234, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (__pyx_t_5) {
/* … */
        }
+4235:             decline_counter = 12
          __Pyx_INCREF(__pyx_int_12);
          __Pyx_DECREF_SET(__pyx_v_decline_counter, __pyx_int_12);
+4236:           decline_coef *= x.recharge_decline[decline_counter]
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4236, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_decline_counter); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4236, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_10 = PyNumber_InPlaceMultiply(__pyx_v_decline_coef, __pyx_t_12); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4236, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF_SET(__pyx_v_decline_coef, __pyx_t_10);
        __pyx_t_10 = 0;
+4237:           x.max_direct_recharge[m_counter] += x.recharge_rate*decline_coef
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_v_m_counter);
        __pyx_t_12 = __pyx_v_m_counter;
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_12); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_1, __pyx_v_decline_coef); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_10, __pyx_t_12, __pyx_t_1) < 0)) __PYX_ERR(0, 4237, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4238:           for res in self.reservoir_list:
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4238, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
          __pyx_t_12 = __pyx_t_10; __Pyx_INCREF(__pyx_t_12); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4238, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_14 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4238, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_10 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4238, __pyx_L1_error)
              #else
              __pyx_t_10 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4238, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_10); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4238, __pyx_L1_error)
              #else
              __pyx_t_10 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4238, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              #endif
            }
          } else {
            __pyx_t_10 = __pyx_t_14(__pyx_t_12);
            if (unlikely(!__pyx_t_10)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4238, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_10);
          }
          __Pyx_XDECREF_SET(__pyx_v_res, __pyx_t_10);
          __pyx_t_10 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
+4239:             if x.reservoir_contract[res.key] == 1:
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_reservoir_contract); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4239, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 4239, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_5) {
/* … */
          }
+4240:               res.max_direct_recharge[0] += x.recharge_rate*decline_coef
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_res, __pyx_n_s_max_direct_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_15 = 0;
            __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_1, __pyx_t_15, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recharge_rate); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __pyx_t_6 = PyNumber_Multiply(__pyx_t_10, __pyx_v_decline_coef); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (unlikely(__Pyx_SetItemInt(__pyx_t_1, __pyx_t_15, __pyx_t_10, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 4240, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 4241: 
+4242:   def update_leiu_capacity(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_77update_leiu_capacity(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_77update_leiu_capacity = {"update_leiu_capacity", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_77update_leiu_capacity, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_77update_leiu_capacity(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_leiu_capacity (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_76update_leiu_capacity(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_76update_leiu_capacity(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_w = NULL;
  PyObject *__pyx_v_member = NULL;
  PyObject *__pyx_v_irr_district = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__63)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_leiu_capacity", 0);
  __Pyx_TraceCall("update_leiu_capacity", __pyx_f[0], 4242, 0, __PYX_ERR(0, 4242, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_20);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_leiu_capacity", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_w);
  __Pyx_XDECREF(__pyx_v_member);
  __Pyx_XDECREF(__pyx_v_irr_district);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__127 = PyTuple_Pack(6, __pyx_n_s_self, __pyx_n_s_w, __pyx_n_s_member, __pyx_n_s_irr_district, __pyx_n_s_y, __pyx_n_s_yy); if (unlikely(!__pyx_tuple__127)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__127);
  __Pyx_GIVEREF(__pyx_tuple__127);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_77update_leiu_capacity, 0, __pyx_n_s_Model_update_leiu_capacity, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__63)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_update_leiu_capacity, __pyx_t_2) < 0) __PYX_ERR(0, 4242, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__63 = (PyObject*)__Pyx_PyCode_New(1, 0, 6, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__127, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_update_leiu_capacity, 4242, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__63)) __PYX_ERR(0, 4242, __pyx_L1_error)
 4243:     #initialize individual banking partner's recovery capacity
+4244:     for w in self.leiu_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4244, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4244, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4244, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4244, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4244, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4244, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4244, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4244, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4245:       for member in w.participant_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4245, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4245, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4245, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4245, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4245, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4245, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4245, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4245, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4246:         if member != w.key:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4246, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_member, __pyx_t_1, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4246, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4246, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_9) {
/* … */
      }
+4247:           for irr_district in self.district_keys[member]:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_member); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4247, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_8 = __pyx_t_1; __Pyx_INCREF(__pyx_t_8); __pyx_t_10 = 0;
          __pyx_t_11 = NULL;
        } else {
          __pyx_t_10 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4247, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_11 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4247, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_11)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4247, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4247, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4247, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_8, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4247, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_11(__pyx_t_8);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4247, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4248:             irr_district.extra_leiu_recovery = 0.0
          if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_extra_leiu_recovery, __pyx_float_0_0) < 0) __PYX_ERR(0, 4248, __pyx_L1_error)
 4249:     #find individual banking partner's (district') recovery capacity based on their total 
 4250: 	#supply in reservoirs accessable by their partners
+4251:     for w in self.leiu_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_leiu_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4251, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4251, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4251, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_3); __Pyx_INCREF(__pyx_t_2); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4251, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4251, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_4(__pyx_t_5);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4251, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_w, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4252:       for member in w.participant_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4252, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_8 = __pyx_t_2; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4252, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_7 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4252, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_8))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4252, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4252, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_2); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4252, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4252, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_7(__pyx_t_8);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4252, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_member, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 4253:         # num_districts = self.district_keys_len[member])
+4254:         for irr_district in self.district_keys[member]:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_member); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4254, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4254, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4254, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4254, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4254, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 4254, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4254, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_11(__pyx_t_2);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4254, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_irr_district, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4255:           for y in irr_district.contract_list:#if the banking partner has a contract at that reservoir, they can trade water there
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4255, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
          __pyx_t_12 = __pyx_t_1; __Pyx_INCREF(__pyx_t_12); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 4255, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_14 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4255, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_12))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4255, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4255, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_13); __Pyx_INCREF(__pyx_t_1); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 4255, __pyx_L1_error)
              #else
              __pyx_t_1 = PySequence_ITEM(__pyx_t_12, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4255, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              #endif
            }
          } else {
            __pyx_t_1 = __pyx_t_14(__pyx_t_12);
            if (unlikely(!__pyx_t_1)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4255, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_1);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_1);
          __pyx_t_1 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+4256:             for yy in w.contract_list:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4256, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
            __pyx_t_15 = __pyx_t_1; __Pyx_INCREF(__pyx_t_15); __pyx_t_16 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_16 = -1; __pyx_t_15 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4256, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_17 = Py_TYPE(__pyx_t_15)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4256, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_15))) {
                if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_15)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyList_GET_ITEM(__pyx_t_15, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 4256, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4256, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              } else {
                if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_15)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_15, __pyx_t_16); __Pyx_INCREF(__pyx_t_1); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 4256, __pyx_L1_error)
                #else
                __pyx_t_1 = PySequence_ITEM(__pyx_t_15, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4256, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_1);
                #endif
              }
            } else {
              __pyx_t_1 = __pyx_t_17(__pyx_t_15);
              if (unlikely(!__pyx_t_1)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4256, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_1);
            }
            __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_1);
            __pyx_t_1 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
+4257:               if y == yy:
            __pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_v_yy, Py_EQ); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4257, __pyx_L1_error)
            __pyx_t_9 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_9 < 0)) __PYX_ERR(0, 4257, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            if (__pyx_t_9) {
/* … */
            }
+4258:                 irr_district.extra_leiu_recovery += w.projected_supply[yy]*w.leiu_trade_cap*w.leiu_ownership[member]
              __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_irr_district, __pyx_n_s_extra_leiu_recovery); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_1);
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_yy); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_trade_cap); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_20 = PyNumber_Multiply(__pyx_t_19, __pyx_t_18); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_20);
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_w, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_member); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = PyNumber_Multiply(__pyx_t_20, __pyx_t_19); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_1, __pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              if (__Pyx_PyObject_SetAttrStr(__pyx_v_irr_district, __pyx_n_s_extra_leiu_recovery, __pyx_t_19) < 0) __PYX_ERR(0, 4258, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
 4259: 
 4260: #####################################################################################################################
 4261: #####################################################################################################################
 4262: #####################################################################################################################
 4263: 
 4264: 
 4265: #####################################################################################################################
 4266: #############################     Flood operations       ############################################################
 4267: #####################################################################################################################
 4268: 
 4269: 
+4270:   def flood_operations(self, t, m, dowy, wateryear, reservoir, flow_type, overflow_toggle, wyt):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_79flood_operations(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_79flood_operations = {"flood_operations", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_79flood_operations, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_79flood_operations(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_v_reservoir = 0;
  PyObject *__pyx_v_flow_type = 0;
  PyObject *__pyx_v_overflow_toggle = 0;
  PyObject *__pyx_v_wyt = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("flood_operations (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_m,&__pyx_n_s_dowy,&__pyx_n_s_wateryear,&__pyx_n_s_reservoir,&__pyx_n_s_flow_type,&__pyx_n_s_overflow_toggle,&__pyx_n_s_wyt,0};
    PyObject* values[9] = {0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 1); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 2); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 3); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 4); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_reservoir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 5); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 6); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_overflow_toggle)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 7); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wyt)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, 8); __PYX_ERR(0, 4270, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "flood_operations") < 0)) __PYX_ERR(0, 4270, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 9) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_m = values[2];
    __pyx_v_dowy = values[3];
    __pyx_v_wateryear = values[4];
    __pyx_v_reservoir = values[5];
    __pyx_v_flow_type = values[6];
    __pyx_v_overflow_toggle = values[7];
    __pyx_v_wyt = values[8];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("flood_operations", 1, 9, 9, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4270, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.flood_operations", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_78flood_operations(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_m, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_reservoir, __pyx_v_flow_type, __pyx_v_overflow_toggle, __pyx_v_wyt);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_78flood_operations(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_m, PyObject *__pyx_v_dowy, PyObject *__pyx_v_wateryear, PyObject *__pyx_v_reservoir, PyObject *__pyx_v_flow_type, PyObject *__pyx_v_overflow_toggle, PyObject *__pyx_v_wyt) {
  PyObject *__pyx_v_begin_key = NULL;
  PyObject *__pyx_v_existing_flow = NULL;
  PyObject *__pyx_v_flood_available = NULL;
  PyObject *__pyx_v_flood_available_overflow = NULL;
  PyObject *__pyx_v_z = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_delivery_key = NULL;
  PyObject *__pyx_v_flood_demand = NULL;
  PyObject *__pyx_v_demand_type = NULL;
  PyObject *__pyx_v_canal_counter = NULL;
  PyObject *__pyx_v_tot_canal_demand = NULL;
  PyObject *__pyx_v_total_flood_deliveries = NULL;
  PyObject *__pyx_v_total_excess_flow = NULL;
  PyObject *__pyx_v_canal_cap = NULL;
  PyObject *__pyx_v_non_overflow_demand = NULL;
  PyObject *__pyx_v_priority_flows = NULL;
  PyObject *__pyx_v_flood_deliveries = NULL;
  PyObject *__pyx_v_priority_flows_tot = NULL;
  PyObject *__pyx_v_type_list = NULL;
  PyObject *__pyx_v_canal_counter2 = NULL;
  CYTHON_UNUSED Py_ssize_t __pyx_v_xxx;
  PyObject *__pyx_v_canal_size = NULL;
  PyObject *__pyx_v_excess_flows = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_unmet_demands = NULL;
  PyObject *__pyx_v_total_spill = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__64)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("flood_operations", 0);
  __Pyx_TraceCall("flood_operations", __pyx_f[0], 4270, 0, __PYX_ERR(0, 4270, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.flood_operations", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_begin_key);
  __Pyx_XDECREF(__pyx_v_existing_flow);
  __Pyx_XDECREF(__pyx_v_flood_available);
  __Pyx_XDECREF(__pyx_v_flood_available_overflow);
  __Pyx_XDECREF(__pyx_v_z);
  __Pyx_XDECREF(__pyx_v_delivery_key);
  __Pyx_XDECREF(__pyx_v_flood_demand);
  __Pyx_XDECREF(__pyx_v_demand_type);
  __Pyx_XDECREF(__pyx_v_canal_counter);
  __Pyx_XDECREF(__pyx_v_tot_canal_demand);
  __Pyx_XDECREF(__pyx_v_total_flood_deliveries);
  __Pyx_XDECREF(__pyx_v_total_excess_flow);
  __Pyx_XDECREF(__pyx_v_canal_cap);
  __Pyx_XDECREF(__pyx_v_non_overflow_demand);
  __Pyx_XDECREF(__pyx_v_priority_flows);
  __Pyx_XDECREF(__pyx_v_flood_deliveries);
  __Pyx_XDECREF(__pyx_v_priority_flows_tot);
  __Pyx_XDECREF(__pyx_v_type_list);
  __Pyx_XDECREF(__pyx_v_canal_counter2);
  __Pyx_XDECREF(__pyx_v_canal_size);
  __Pyx_XDECREF(__pyx_v_excess_flows);
  __Pyx_XDECREF(__pyx_v_unmet_demands);
  __Pyx_XDECREF(__pyx_v_total_spill);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__128 = PyTuple_Pack(33, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_m, __pyx_n_s_dowy, __pyx_n_s_wateryear, __pyx_n_s_reservoir, __pyx_n_s_flow_type, __pyx_n_s_overflow_toggle, __pyx_n_s_wyt, __pyx_n_s_begin_key, __pyx_n_s_existing_flow, __pyx_n_s_flood_available, __pyx_n_s_flood_available_overflow, __pyx_n_s_z, __pyx_n_s_delivery_key, __pyx_n_s_flood_demand, __pyx_n_s_demand_type, __pyx_n_s_canal_counter, __pyx_n_s_tot_canal_demand, __pyx_n_s_total_flood_deliveries, __pyx_n_s_total_excess_flow, __pyx_n_s_canal_cap, __pyx_n_s_non_overflow_demand, __pyx_n_s_priority_flows, __pyx_n_s_flood_deliveries, __pyx_n_s_priority_flows_tot, __pyx_n_s_type_list, __pyx_n_s_canal_counter2, __pyx_n_s_xxx, __pyx_n_s_canal_size, __pyx_n_s_excess_flows, __pyx_n_s_unmet_demands, __pyx_n_s_total_spill); if (unlikely(!__pyx_tuple__128)) __PYX_ERR(0, 4270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__128);
  __Pyx_GIVEREF(__pyx_tuple__128);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_79flood_operations, 0, __pyx_n_s_Model_flood_operations, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__64)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4270, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_flood_operations, __pyx_t_2) < 0) __PYX_ERR(0, 4270, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__64 = (PyObject*)__Pyx_PyCode_New(9, 0, 33, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__128, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_flood_operations, 4270, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__64)) __PYX_ERR(0, 4270, __pyx_L1_error)
 4271:     ###available flood taken from reservoir step
 4272: 	###min-daily-uncontrolled is based on reservoir forecasts & available recharge space
 4273:     #releases from the flood pool, or in anticipation of the flood releases
 4274:     #'anticipation' releases are only made if they are at least as large as the
 4275: 	#total recharge capacity at the reservoir
+4276:     if reservoir.key == "SLS" or reservoir.key == "SLF":
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_SLS, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!__pyx_t_3) {
  } else {
    __pyx_t_1 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4276, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_2, __pyx_n_u_SLF, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4276, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+4277:       begin_key = "SNL"
    __Pyx_INCREF(__pyx_n_u_SNL);
    __pyx_v_begin_key = __pyx_n_u_SNL;
 4278:     else:
+4279:       begin_key = reservoir.key
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4279, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_v_begin_key = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L3:;
 4280: 
+4281:     existing_flow = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_existing_flow = __pyx_float_0_0;
+4282:     if max(reservoir.flood_flow_min, 2.0) > reservoir.min_daily_uncontrolled:
  __pyx_t_4 = 2.0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_flood_flow_min); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_6 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_1) {
    __pyx_t_7 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __pyx_t_7;
    __pyx_t_7 = 0;
  } else {
    __Pyx_INCREF(__pyx_t_2);
    __pyx_t_5 = __pyx_t_2;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4282, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_1) {
/* … */
    goto __pyx_L6;
  }
 4283:     #if reservoir.min_daily_uncontrolled < 3.0:
+4284:       flood_available = reservoir.fcr
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fcr); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4284, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_v_flood_available = __pyx_t_7;
    __pyx_t_7 = 0;
+4285:       flood_available_overflow = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_flood_available_overflow = __pyx_float_0_0;
 4286:     else:
+4287:       for z in self.reservoir_canal[reservoir.key]:
  /*else*/ {
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4287, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4287, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4287, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4287, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4287, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4287, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_9(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4287, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4288:         existing_flow += z.flow[1]
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_existing_flow, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4288, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_existing_flow, __pyx_t_5);
      __pyx_t_5 = 0;
+4289:       flood_available = max(reservoir.fcr, reservoir.min_daily_uncontrolled + max((reservoir.monthly_demand[wyt][m-1] + reservoir.monthly_demand_must_fill[wyt][m-1])/31.0 - existing_flow, 0.0))    #if reservoir.fcr < reservoir.flood_flow_min:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_min_daily_uncontrolled); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = 0.0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_monthly_demand); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wyt); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Add(__pyx_t_6, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_5, __pyx_float_31_0, 31.0, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Subtract(__pyx_t_10, __pyx_v_existing_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_6 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_1) {
      __pyx_t_7 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = __pyx_t_7;
      __pyx_t_7 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_10 = __pyx_t_5;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fcr); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4289, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_1) {
      __Pyx_INCREF(__pyx_t_5);
      __pyx_t_2 = __pyx_t_5;
    } else {
      __Pyx_INCREF(__pyx_t_10);
      __pyx_t_2 = __pyx_t_10;
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __pyx_t_2;
    __Pyx_INCREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_flood_available = __pyx_t_5;
    __pyx_t_5 = 0;
+4290:       if reservoir.min_daily_overflow > 0.0:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_min_daily_overflow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4290, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4290, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_1) {
/* … */
      goto __pyx_L9;
    }
+4291:         flood_available_overflow = reservoir.min_daily_overflow + max((reservoir.monthly_demand_full[wyt][m-1] + reservoir.monthly_demand_must_fill[wyt][m-1])/31.0 - existing_flow, 0.0)    #if reservoir.fcr < reservoir.flood_flow_min:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_min_daily_overflow); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_4 = 0.0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_monthly_demand_full); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wyt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_monthly_demand_must_fill); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_wyt); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_m, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_5, __pyx_float_31_0, 31.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Subtract(__pyx_t_6, __pyx_v_existing_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_1) {
        __pyx_t_10 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4291, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = __pyx_t_10;
        __pyx_t_10 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_6 = __pyx_t_5;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Add(__pyx_t_2, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4291, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_v_flood_available_overflow = __pyx_t_5;
      __pyx_t_5 = 0;
 4292:       else:
+4293:         flood_available_overflow = 0.0
    /*else*/ {
      __Pyx_INCREF(__pyx_float_0_0);
      __pyx_v_flood_available_overflow = __pyx_float_0_0;
    }
    __pyx_L9:;
  }
  __pyx_L6:;
 4294: 
 4295: 
+4296:     if flood_available > 0.0:
  __pyx_t_5 = PyObject_RichCompare(__pyx_v_flood_available, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4296, __pyx_L1_error)
  __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4296, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_1) {
/* … */
  }
+4297:       delivery_key = reservoir.key + "_flood"
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_n_u_flood); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4297, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_v_delivery_key = __pyx_t_6;
    __pyx_t_6 = 0;
 4298: 	  #3 priority levels for flood flows
 4299:       #contractor - 1st priority, has contract at the reservoir being spilled
 4300:       #turnout - 2nd priority, has a turnout on a 'priority' canal for the reservoir being spilled
 4301:       #excess - 3rd priority, turnout on a non-priority canal for th ereservoir being spilled
+4302:       flood_demand = {}
    __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4302, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_v_flood_demand = ((PyObject*)__pyx_t_6);
    __pyx_t_6 = 0;
+4303:       for demand_type in ['contractor', 'alternate', 'turnout', 'excess']:
    __pyx_t_6 = __pyx_tuple__65; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
    for (;;) {
      if (__pyx_t_8 >= 4) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_5); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4303, __pyx_L1_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4303, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_demand_type, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
/* … */
  __pyx_tuple__65 = PyTuple_Pack(4, __pyx_n_u_contractor, __pyx_n_u_alternate, __pyx_n_u_turnout, __pyx_n_u_excess); if (unlikely(!__pyx_tuple__65)) __PYX_ERR(0, 4303, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__65);
  __Pyx_GIVEREF(__pyx_tuple__65);
+4304:         flood_demand[demand_type] = np.zeros(len(self.reservoir_canal[reservoir.key]))
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_12 = PyObject_Length(__pyx_t_11); if (unlikely(__pyx_t_12 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
        }
      }
      __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_10, __pyx_t_7, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_10, __pyx_t_11);
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_v_demand_type, __pyx_t_5) < 0)) __PYX_ERR(0, 4304, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4305:         flood_demand['tot_' + demand_type] = 0.0
      __pyx_t_5 = PyNumber_Add(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4305, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_5, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4305, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4306: 
 4307:       ##Search for districts to take water
 4308:       ##Note: Millerton deliveries water to two seperate canals - their demands calculated seperately and split proportionally
+4309:       canal_counter = 0
    __Pyx_INCREF(__pyx_int_0);
    __pyx_v_canal_counter = __pyx_int_0;
+4310:       for z in self.reservoir_canal[reservoir.key]:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4310, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_5 = __pyx_t_10; __Pyx_INCREF(__pyx_t_5); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4310, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4310, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4310, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4310, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4310, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_5, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4310, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_5);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4310, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4311:         #total flood deliveries on each canal to each priority type
+4312:         tot_canal_demand = self.search_canal_demand(dowy, z, begin_key, z.name, 'normal',flow_type,wateryear,'flood', {})
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4312, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = NULL;
      __pyx_t_13 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_2)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_2);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_13 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_dowy, __pyx_v_z, __pyx_v_begin_key, __pyx_t_11, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_flood_2, __pyx_t_7};
        __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 9+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4312, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[10] = {__pyx_t_2, __pyx_v_dowy, __pyx_v_z, __pyx_v_begin_key, __pyx_t_11, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_n_u_flood_2, __pyx_t_7};
        __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 9+__pyx_t_13); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4312, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else
      #endif
      {
        __pyx_t_14 = PyTuple_New(9+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (__pyx_t_2) {
          __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_2); __pyx_t_2 = NULL;
        }
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_z);
        __Pyx_GIVEREF(__pyx_v_z);
        PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_v_z);
        __Pyx_INCREF(__pyx_v_begin_key);
        __Pyx_GIVEREF(__pyx_v_begin_key);
        PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_v_begin_key);
        __Pyx_GIVEREF(__pyx_t_11);
        PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_13, __pyx_t_11);
        __Pyx_INCREF(__pyx_n_u_normal);
        __Pyx_GIVEREF(__pyx_n_u_normal);
        PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_13, __pyx_n_u_normal);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_13, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_13, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_n_u_flood_2);
        __Pyx_GIVEREF(__pyx_n_u_flood_2);
        PyTuple_SET_ITEM(__pyx_t_14, 7+__pyx_t_13, __pyx_n_u_flood_2);
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_14, 8+__pyx_t_13, __pyx_t_7);
        __pyx_t_11 = 0;
        __pyx_t_7 = 0;
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4312, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_tot_canal_demand, __pyx_t_10);
      __pyx_t_10 = 0;
+4313:         for demand_type in tot_canal_demand:
      if (likely(PyList_CheckExact(__pyx_v_tot_canal_demand)) || PyTuple_CheckExact(__pyx_v_tot_canal_demand)) {
        __pyx_t_10 = __pyx_v_tot_canal_demand; __Pyx_INCREF(__pyx_t_10); __pyx_t_12 = 0;
        __pyx_t_15 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_tot_canal_demand); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4313, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_15 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 4313, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_15)) {
          if (likely(PyList_CheckExact(__pyx_t_10))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4313, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4313, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4313, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_15(__pyx_t_10);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4313, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_demand_type, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 4314:           #sum priority deliveries over all canals
+4315:           flood_demand[demand_type][canal_counter] = tot_canal_demand[demand_type]
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_tot_canal_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4315, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_canal_counter, __pyx_t_6) < 0)) __PYX_ERR(0, 4315, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4316:           flood_demand['tot_' + demand_type] += flood_demand[demand_type][canal_counter]
        __pyx_t_6 = PyNumber_Add(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_counter); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_11); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4316, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4317:         canal_counter += 1
      __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4317, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_t_10);
      __pyx_t_10 = 0;
+4318:       canal_counter = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_int_0);
+4319:       total_flood_deliveries = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_total_flood_deliveries = __pyx_float_0_0;
+4320:       total_excess_flow = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_total_excess_flow = __pyx_float_0_0;
+4321:       canal_cap = np.zeros(len(self.reservoir_canal[reservoir.key]))
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_np); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_10, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_7); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_8 = PyObject_Length(__pyx_t_11); if (unlikely(__pyx_t_8 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyInt_FromSsize_t(__pyx_t_8); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_5 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_7, __pyx_t_11) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_11);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4321, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_canal_cap = __pyx_t_5;
    __pyx_t_5 = 0;
+4322:       canal_counter = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_int_0);
+4323:       non_overflow_demand = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __pyx_v_non_overflow_demand = __pyx_float_0_0;
+4324:       for z in self.reservoir_canal[reservoir.key]:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4324, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (likely(PyList_CheckExact(__pyx_t_11)) || PyTuple_CheckExact(__pyx_t_11)) {
      __pyx_t_6 = __pyx_t_11; __Pyx_INCREF(__pyx_t_6); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4324, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_9 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4324, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4324, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4324, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_11 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_8); __Pyx_INCREF(__pyx_t_11); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4324, __pyx_L1_error)
          #else
          __pyx_t_11 = PySequence_ITEM(__pyx_t_6, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4324, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          #endif
        }
      } else {
        __pyx_t_11 = __pyx_t_9(__pyx_t_6);
        if (unlikely(!__pyx_t_11)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4324, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_11);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_11);
      __pyx_t_11 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4325:         canal_cap[canal_counter] = z.capacity['normal'][1]*cfs_tafd - z.flow[1]
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_capacity); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_normal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_11, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = __Pyx_GetItemInt(__pyx_t_5, 1, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Subtract(__pyx_t_7, __pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (unlikely(PyObject_SetItem(__pyx_v_canal_cap, __pyx_v_canal_counter, __pyx_t_5) < 0)) __PYX_ERR(0, 4325, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4326:         non_overflow_demand += min(flood_demand['contractor'][canal_counter] + flood_demand['alternate'][canal_counter], canal_cap[canal_counter])
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_n_u_contractor); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_canal_counter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_n_u_alternate); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_canal_counter); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = PyNumber_Add(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_11, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_1) {
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_10 = __pyx_t_5;
      } else {
        __Pyx_INCREF(__pyx_t_11);
        __pyx_t_10 = __pyx_t_11;
      }
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_non_overflow_demand, __pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4326, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF_SET(__pyx_v_non_overflow_demand, __pyx_t_5);
      __pyx_t_5 = 0;
+4327:         canal_counter += 1
      __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_t_5);
      __pyx_t_5 = 0;
+4328:       if overflow_toggle == 1:
    __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_overflow_toggle, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4328, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4328, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4329:         flood_available = max(min(flood_available, non_overflow_demand), min(flood_available_overflow, flood_available))
      __Pyx_INCREF(__pyx_v_flood_available);
      __pyx_t_6 = __pyx_v_flood_available;
      __Pyx_INCREF(__pyx_v_flood_available_overflow);
      __pyx_t_5 = __pyx_v_flood_available_overflow;
      __pyx_t_11 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      if (__pyx_t_1) {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_10 = __pyx_t_6;
      } else {
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_10 = __pyx_t_5;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_INCREF(__pyx_t_10);
      __pyx_t_6 = __pyx_t_10;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_INCREF(__pyx_v_non_overflow_demand);
      __pyx_t_10 = __pyx_v_non_overflow_demand;
      __Pyx_INCREF(__pyx_v_flood_available);
      __pyx_t_5 = __pyx_v_flood_available;
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_10, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_1) {
        __Pyx_INCREF(__pyx_t_10);
        __pyx_t_11 = __pyx_t_10;
      } else {
        __Pyx_INCREF(__pyx_t_5);
        __pyx_t_11 = __pyx_t_5;
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_10 = __pyx_t_11;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_5 = PyObject_RichCompare(__pyx_t_6, __pyx_t_10, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4329, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_1) {
        __Pyx_INCREF(__pyx_t_6);
        __pyx_t_11 = __pyx_t_6;
      } else {
        __Pyx_INCREF(__pyx_t_10);
        __pyx_t_11 = __pyx_t_10;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __pyx_t_11;
      __Pyx_INCREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF_SET(__pyx_v_flood_available, __pyx_t_6);
      __pyx_t_6 = 0;
 4330: 
 4331: 
+4332:       canal_counter = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_int_0);
+4333:       for z in self.reservoir_canal[reservoir.key]:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_11); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4333, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
      __pyx_t_11 = __pyx_t_10; __Pyx_INCREF(__pyx_t_11); __pyx_t_8 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_8 = -1; __pyx_t_11 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4333, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = Py_TYPE(__pyx_t_11)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4333, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_11))) {
          if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyList_GET_ITEM(__pyx_t_11, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4333, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        } else {
          if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_11)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_11, __pyx_t_8); __Pyx_INCREF(__pyx_t_10); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 4333, __pyx_L1_error)
          #else
          __pyx_t_10 = PySequence_ITEM(__pyx_t_11, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4333, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          #endif
        }
      } else {
        __pyx_t_10 = __pyx_t_9(__pyx_t_11);
        if (unlikely(!__pyx_t_10)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4333, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_10);
      }
      __Pyx_XDECREF_SET(__pyx_v_z, __pyx_t_10);
      __pyx_t_10 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 4334:         #first, determine the % of total demand at each priority level that can be fufilled
 4335:         #second, sum up the total deliveries to each canal from the reservoir
+4336:         priority_flows = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_priority_flows, __pyx_float_0_0);
+4337:         flood_deliveries = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_flood_deliveries, __pyx_float_0_0);
+4338:         priority_flows_tot = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_priority_flows_tot, __pyx_float_0_0);
+4339:         if overflow_toggle == 1:
      __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_v_overflow_toggle, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4339, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4339, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (__pyx_t_1) {
/* … */
        goto __pyx_L22;
      }
+4340:           type_list = ['contractor', 'alternate', 'turnout', 'excess']
        __pyx_t_10 = PyList_New(4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4340, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_n_u_contractor);
        __Pyx_GIVEREF(__pyx_n_u_contractor);
        PyList_SET_ITEM(__pyx_t_10, 0, __pyx_n_u_contractor);
        __Pyx_INCREF(__pyx_n_u_alternate);
        __Pyx_GIVEREF(__pyx_n_u_alternate);
        PyList_SET_ITEM(__pyx_t_10, 1, __pyx_n_u_alternate);
        __Pyx_INCREF(__pyx_n_u_turnout);
        __Pyx_GIVEREF(__pyx_n_u_turnout);
        PyList_SET_ITEM(__pyx_t_10, 2, __pyx_n_u_turnout);
        __Pyx_INCREF(__pyx_n_u_excess);
        __Pyx_GIVEREF(__pyx_n_u_excess);
        PyList_SET_ITEM(__pyx_t_10, 3, __pyx_n_u_excess);
        __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_10));
        __pyx_t_10 = 0;
 4341:         else:
+4342:           type_list = ['contractor', 'alternate']
      /*else*/ {
        __pyx_t_10 = PyList_New(2); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4342, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_n_u_contractor);
        __Pyx_GIVEREF(__pyx_n_u_contractor);
        PyList_SET_ITEM(__pyx_t_10, 0, __pyx_n_u_contractor);
        __Pyx_INCREF(__pyx_n_u_alternate);
        __Pyx_GIVEREF(__pyx_n_u_alternate);
        PyList_SET_ITEM(__pyx_t_10, 1, __pyx_n_u_alternate);
        __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_10));
        __pyx_t_10 = 0;
      }
      __pyx_L22:;
+4343:         for demand_type in type_list:
      __pyx_t_10 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_12 = 0;
      for (;;) {
        if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_10)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_6); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4343, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4343, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
        __Pyx_XDECREF_SET(__pyx_v_demand_type, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+4344:           if flood_demand['tot_' + demand_type] > 0.0:
        __pyx_t_6 = PyNumber_Add(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4344, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4344, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4344, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4344, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (__pyx_t_1) {
/* … */
          goto __pyx_L25;
        }
+4345:             if (flood_demand[demand_type][canal_counter] + priority_flows) > canal_cap[canal_counter] and ((flood_available-priority_flows_tot)*(flood_demand[demand_type][canal_counter]/flood_demand['tot_' + demand_type])+priority_flows) > canal_cap[canal_counter]:
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_6 = PyNumber_Add(__pyx_t_5, __pyx_v_priority_flows); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_3) {
          } else {
            __pyx_t_1 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_7 = PyNumber_Subtract(__pyx_v_flood_available, __pyx_v_priority_flows_tot); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_canal_counter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_Add(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = __Pyx_PyNumber_Divide(__pyx_t_6, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_Add(__pyx_t_14, __pyx_v_priority_flows); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 4345, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_1 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_1) {
/* … */
            goto __pyx_L26;
          }
+4346:               if flood_demand[demand_type][canal_counter] > 0.0:
            __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4346, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_counter); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4346, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyObject_RichCompare(__pyx_t_14, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4346, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4346, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (__pyx_t_1) {
/* … */
              goto __pyx_L29;
            }
+4347:                 flood_demand[demand_type + '_frac'] = min(max(canal_cap[canal_counter]-priority_flows, 0.0)/flood_demand[demand_type][canal_counter], 1.0)# the percent of demand that can be fufilled, adjusting for priority priority deliveries
              __pyx_t_4 = 1.0;
              __pyx_t_16 = 0.0;
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = PyNumber_Subtract(__pyx_t_7, __pyx_v_priority_flows); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_5 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __pyx_t_6 = PyObject_RichCompare(__pyx_t_5, __pyx_t_14, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              if (__pyx_t_1) {
                __pyx_t_6 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4347, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_6);
                __pyx_t_7 = __pyx_t_6;
                __pyx_t_6 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_14);
                __pyx_t_7 = __pyx_t_14;
              }
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_counter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = __Pyx_PyNumber_Divide(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_7 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_5 = PyObject_RichCompare(__pyx_t_7, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              if (__pyx_t_1) {
                __pyx_t_5 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4347, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_5);
                __pyx_t_6 = __pyx_t_5;
                __pyx_t_5 = 0;
              } else {
                __Pyx_INCREF(__pyx_t_14);
                __pyx_t_6 = __pyx_t_14;
              }
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_14 = __pyx_t_6;
              __Pyx_INCREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_6 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_6, __pyx_t_14) < 0)) __PYX_ERR(0, 4347, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 4348:               else:
+4349:                 flood_demand[demand_type + '_frac'] = 0.0# the percent of demand that can be fufilled, adjusting for priority priority deliveries
            /*else*/ {
              __pyx_t_14 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4349, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_14, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4349, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            }
            __pyx_L29:;
 4350: 
+4351:               flood_deliveries += flood_demand[demand_type + '_frac']*flood_demand[demand_type][canal_counter]
            __pyx_t_14 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_14 = PyNumber_Multiply(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_flood_deliveries, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4351, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF_SET(__pyx_v_flood_deliveries, __pyx_t_5);
            __pyx_t_5 = 0;
+4352:               priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_counter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (__pyx_t_1) {
              __Pyx_INCREF(__pyx_t_5);
              __pyx_t_14 = __pyx_t_5;
            } else {
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_14 = __pyx_t_6;
            }
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_priority_flows, __pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4352, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF_SET(__pyx_v_priority_flows, __pyx_t_5);
            __pyx_t_5 = 0;
+4353:               canal_counter2 = 0
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_XDECREF_SET(__pyx_v_canal_counter2, __pyx_int_0);
+4354:               for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4354, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4354, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4354, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_17 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4354, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_xxx = __pyx_t_19;
+4355:                 priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
              __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_14 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (__pyx_t_1) {
                __Pyx_INCREF(__pyx_t_6);
                __pyx_t_14 = __pyx_t_6;
              } else {
                __Pyx_INCREF(__pyx_t_5);
                __pyx_t_14 = __pyx_t_5;
              }
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_priority_flows_tot, __pyx_t_14); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4355, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __Pyx_DECREF_SET(__pyx_v_priority_flows_tot, __pyx_t_6);
              __pyx_t_6 = 0;
+4356:                 canal_counter2 += 1
              __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter2, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4356, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              __Pyx_DECREF_SET(__pyx_v_canal_counter2, __pyx_t_6);
              __pyx_t_6 = 0;
            }
 4357:             else:
+4358:               flood_demand[demand_type + '_frac'] = min(max(flood_available - priority_flows_tot, 0.0)/flood_demand['tot_' + demand_type], 1.0)# the percent of demand that can be fufilled, adjusting for priority priority deliveries
          /*else*/ {
            __pyx_t_4 = 1.0;
            __pyx_t_16 = 0.0;
            __pyx_t_6 = PyNumber_Subtract(__pyx_v_flood_available, __pyx_v_priority_flows_tot); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_5 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_7 = PyObject_RichCompare(__pyx_t_5, __pyx_t_6, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (__pyx_t_1) {
              __pyx_t_7 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4358, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_14 = __pyx_t_7;
              __pyx_t_7 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_14 = __pyx_t_6;
            }
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_Add(__pyx_n_u_tot, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_14, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_14 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_5 = PyObject_RichCompare(__pyx_t_14, __pyx_t_6, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            if (__pyx_t_1) {
              __pyx_t_5 = PyFloat_FromDouble(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4358, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __pyx_t_7 = __pyx_t_5;
              __pyx_t_5 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_7 = __pyx_t_6;
            }
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __pyx_t_7;
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_7, __pyx_t_6) < 0)) __PYX_ERR(0, 4358, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4359:               priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
            __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_14 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (__pyx_t_1) {
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_7 = __pyx_t_6;
            } else {
              __Pyx_INCREF(__pyx_t_5);
              __pyx_t_7 = __pyx_t_5;
            }
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_priority_flows, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4359, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF_SET(__pyx_v_priority_flows, __pyx_t_6);
            __pyx_t_6 = 0;
+4360:               flood_deliveries += flood_demand[demand_type + '_frac'] * flood_demand[demand_type][canal_counter]
            __pyx_t_6 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_Multiply(__pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_flood_deliveries, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4360, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF_SET(__pyx_v_flood_deliveries, __pyx_t_5);
            __pyx_t_5 = 0;
 4361: 
+4362:               canal_counter2 = 0
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_XDECREF_SET(__pyx_v_canal_counter2, __pyx_int_0);
+4363:               for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4363, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_17 = PyObject_Length(__pyx_t_7); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4363, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_xxx = __pyx_t_19;
+4364:                 priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
              __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __pyx_t_14 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (__pyx_t_1) {
                __Pyx_INCREF(__pyx_t_7);
                __pyx_t_6 = __pyx_t_7;
              } else {
                __Pyx_INCREF(__pyx_t_5);
                __pyx_t_6 = __pyx_t_5;
              }
              __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_priority_flows_tot, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4364, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF_SET(__pyx_v_priority_flows_tot, __pyx_t_7);
              __pyx_t_7 = 0;
+4365:                 canal_counter2 += 1
              __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter2, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4365, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF_SET(__pyx_v_canal_counter2, __pyx_t_7);
              __pyx_t_7 = 0;
            }
          }
          __pyx_L26:;
 4366:           else:
+4367:             flood_demand[demand_type + '_frac'] = 0.0
        /*else*/ {
          __pyx_t_7 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4367, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          if (unlikely(PyDict_SetItem(__pyx_v_flood_demand, __pyx_t_7, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4367, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4368:             priority_flows += min(flood_demand[demand_type][canal_counter], canal_cap[canal_counter])
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_14 = PyObject_RichCompare(__pyx_t_7, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (__pyx_t_1) {
            __Pyx_INCREF(__pyx_t_7);
            __pyx_t_6 = __pyx_t_7;
          } else {
            __Pyx_INCREF(__pyx_t_5);
            __pyx_t_6 = __pyx_t_5;
          }
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_priority_flows, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4368, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF_SET(__pyx_v_priority_flows, __pyx_t_7);
          __pyx_t_7 = 0;
+4369:             flood_deliveries += flood_demand[demand_type + '_frac'] * flood_demand[demand_type][canal_counter]
          __pyx_t_7 = PyNumber_Add(__pyx_v_demand_type, __pyx_n_u_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_counter); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_t_5); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_flood_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4369, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF_SET(__pyx_v_flood_deliveries, __pyx_t_5);
          __pyx_t_5 = 0;
+4370:             canal_counter2 = 0
          __Pyx_INCREF(__pyx_int_0);
          __Pyx_XDECREF_SET(__pyx_v_canal_counter2, __pyx_int_0);
+4371:             for xxx in range(0,len(self.reservoir_canal[reservoir.key])):
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_reservoir_canal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4371, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4371, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4371, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_17 = PyObject_Length(__pyx_t_6); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 4371, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_18 = __pyx_t_17;
          for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
            __pyx_v_xxx = __pyx_t_19;
+4372:               priority_flows_tot += min(flood_demand[demand_type][canal_counter2], canal_cap[canal_counter2])
            __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_v_canal_cap, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_flood_demand, __pyx_v_demand_type); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_counter2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_14 = PyObject_RichCompare(__pyx_t_6, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (__pyx_t_1) {
              __Pyx_INCREF(__pyx_t_6);
              __pyx_t_7 = __pyx_t_6;
            } else {
              __Pyx_INCREF(__pyx_t_5);
              __pyx_t_7 = __pyx_t_5;
            }
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_v_priority_flows_tot, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4372, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF_SET(__pyx_v_priority_flows_tot, __pyx_t_6);
            __pyx_t_6 = 0;
+4373:               canal_counter2 += 1
            __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter2, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4373, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF_SET(__pyx_v_canal_counter2, __pyx_t_6);
            __pyx_t_6 = 0;
          }
        }
        __pyx_L25:;
 4374: 
+4375:         canal_size = self.canal_district_len[z.name]
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4375, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_XDECREF_SET(__pyx_v_canal_size, __pyx_t_7);
      __pyx_t_7 = 0;
+4376:         if flood_deliveries > 0.0:
      __pyx_t_7 = PyObject_RichCompare(__pyx_v_flood_deliveries, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4376, __pyx_L1_error)
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4376, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_1) {
/* … */
        goto __pyx_L36;
      }
+4377:           excess_flows, unmet_demands = self.distribute_canal_deliveries(dowy, z, begin_key, z.name, flood_deliveries, canal_size, wateryear, 'normal', flow_type, 'flood')
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4377, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_z, __pyx_n_s_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4377, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_5 = NULL;
        __pyx_t_13 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_5)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_5);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_13 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[11] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_v_begin_key, __pyx_t_10, __pyx_v_flood_deliveries, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_flood_2};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 10+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[11] = {__pyx_t_5, __pyx_v_dowy, __pyx_v_z, __pyx_v_begin_key, __pyx_t_10, __pyx_v_flood_deliveries, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_flood_2};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_13, 10+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(10+__pyx_t_13); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_5) {
            __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_5); __pyx_t_5 = NULL;
          }
          __Pyx_INCREF(__pyx_v_dowy);
          __Pyx_GIVEREF(__pyx_v_dowy);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_13, __pyx_v_dowy);
          __Pyx_INCREF(__pyx_v_z);
          __Pyx_GIVEREF(__pyx_v_z);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_13, __pyx_v_z);
          __Pyx_INCREF(__pyx_v_begin_key);
          __Pyx_GIVEREF(__pyx_v_begin_key);
          PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_13, __pyx_v_begin_key);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_13, __pyx_t_10);
          __Pyx_INCREF(__pyx_v_flood_deliveries);
          __Pyx_GIVEREF(__pyx_v_flood_deliveries);
          PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_13, __pyx_v_flood_deliveries);
          __Pyx_INCREF(__pyx_v_canal_size);
          __Pyx_GIVEREF(__pyx_v_canal_size);
          PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_13, __pyx_v_canal_size);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_13, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_n_u_normal);
          __Pyx_GIVEREF(__pyx_n_u_normal);
          PyTuple_SET_ITEM(__pyx_t_14, 7+__pyx_t_13, __pyx_n_u_normal);
          __Pyx_INCREF(__pyx_v_flow_type);
          __Pyx_GIVEREF(__pyx_v_flow_type);
          PyTuple_SET_ITEM(__pyx_t_14, 8+__pyx_t_13, __pyx_v_flow_type);
          __Pyx_INCREF(__pyx_n_u_flood_2);
          __Pyx_GIVEREF(__pyx_n_u_flood_2);
          PyTuple_SET_ITEM(__pyx_t_14, 9+__pyx_t_13, __pyx_n_u_flood_2);
          __pyx_t_10 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_14, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
          PyObject* sequence = __pyx_t_7;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 4377, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_14);
          #else
          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          #endif
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4377, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_20 = Py_TYPE(__pyx_t_10)->tp_iternext;
          index = 0; __pyx_t_6 = __pyx_t_20(__pyx_t_10); if (unlikely(!__pyx_t_6)) goto __pyx_L37_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_6);
          index = 1; __pyx_t_14 = __pyx_t_20(__pyx_t_10); if (unlikely(!__pyx_t_14)) goto __pyx_L37_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_14);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_20(__pyx_t_10), 2) < 0) __PYX_ERR(0, 4377, __pyx_L1_error)
          __pyx_t_20 = NULL;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          goto __pyx_L38_unpacking_done;
          __pyx_L37_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_20 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 4377, __pyx_L1_error)
          __pyx_L38_unpacking_done:;
        }
        __Pyx_XDECREF_SET(__pyx_v_excess_flows, __pyx_t_6);
        __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_unmet_demands, __pyx_t_14);
        __pyx_t_14 = 0;
 4378: 
 4379:         else:
+4380:           excess_flows = 0.0
      /*else*/ {
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_XDECREF_SET(__pyx_v_excess_flows, __pyx_float_0_0);
      }
      __pyx_L36:;
+4381:         canal_counter += 1
      __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_v_canal_counter, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4381, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_canal_counter, __pyx_t_7);
      __pyx_t_7 = 0;
+4382:         total_flood_deliveries += flood_deliveries
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_flood_deliveries, __pyx_v_flood_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4382, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_total_flood_deliveries, __pyx_t_7);
      __pyx_t_7 = 0;
+4383:         total_excess_flow += excess_flows
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_v_total_excess_flow, __pyx_v_excess_flows); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4383, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF_SET(__pyx_v_total_excess_flow, __pyx_t_7);
      __pyx_t_7 = 0;
 4384:       #if all deliveries cannot be taken, then only need to 'spill' from the 
 4385:       #reservoir what was actually delivered (unless over the flood pool - then spill into channel (not tracked)
+4386:       total_spill = max(total_flood_deliveries - total_excess_flow, reservoir.fcr)
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fcr); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_7 = PyNumber_Subtract(__pyx_v_total_flood_deliveries, __pyx_v_total_excess_flow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4386, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_11, __pyx_t_7, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4386, __pyx_L1_error)
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4386, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
      __Pyx_INCREF(__pyx_t_11);
      __pyx_t_14 = __pyx_t_11;
    } else {
      __Pyx_INCREF(__pyx_t_7);
      __pyx_t_14 = __pyx_t_7;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = __pyx_t_14;
    __Pyx_INCREF(__pyx_t_11);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_v_total_spill = __pyx_t_11;
    __pyx_t_11 = 0;
+4387:       reservoir.flood_spill[t] += total_spill - total_flood_deliveries + total_excess_flow
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_flood_spill); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __Pyx_INCREF(__pyx_v_t);
    __pyx_t_14 = __pyx_v_t;
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = PyNumber_Subtract(__pyx_v_total_spill, __pyx_v_total_flood_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = PyNumber_Add(__pyx_t_6, __pyx_v_total_excess_flow); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_14, __pyx_t_6) < 0)) __PYX_ERR(0, 4387, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
+4388:       reservoir.flood_deliveries[t] = total_flood_deliveries - total_excess_flow
    __pyx_t_11 = PyNumber_Subtract(__pyx_v_total_flood_deliveries, __pyx_v_total_excess_flow); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_flood_deliveries); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4388, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_t, __pyx_t_11) < 0)) __PYX_ERR(0, 4388, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 4389: 
 4390:       #if water is spilled, it has to be taken from existing carryover or from estimates
 4391:       #of that year's contract (b/c flood releases do not count as contract deliveries, but that
 4392:       #water is still used to estimate water availability for contract allocations)
+4393:       self.update_carryover(total_spill,reservoir.key,wateryear)
    __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_update_carryover); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4393, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = NULL;
    __pyx_t_13 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
      __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_14);
      if (likely(__pyx_t_10)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_14, function);
        __pyx_t_13 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_14)) {
      PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_total_spill, __pyx_t_6, __pyx_v_wateryear};
      __pyx_t_11 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4393, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
      PyObject *__pyx_temp[4] = {__pyx_t_10, __pyx_v_total_spill, __pyx_t_6, __pyx_v_wateryear};
      __pyx_t_11 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_13, 3+__pyx_t_13); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4393, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(3+__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4393, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_10) {
        __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL;
      }
      __Pyx_INCREF(__pyx_v_total_spill);
      __Pyx_GIVEREF(__pyx_v_total_spill);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_13, __pyx_v_total_spill);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_13, __pyx_t_6);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_13, __pyx_v_wateryear);
      __pyx_t_6 = 0;
      __pyx_t_11 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_7, NULL); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4393, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 4394:       #update storage (reservoir.fcr: flood control releases, already accounted for in reservoir water balance)
+4395:       if t < (self.T -1):
    __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_T); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_11);
    __pyx_t_14 = __Pyx_PyInt_SubtractObjC(__pyx_t_11, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4395, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    __pyx_t_11 = PyObject_RichCompare(__pyx_v_t, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_11); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4395, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_11); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4395, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4396:         reservoir.S[t+1] -= (total_spill - reservoir.fcr)
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_S); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_14 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_14); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fcr); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_10 = PyNumber_Subtract(__pyx_v_total_spill, __pyx_t_6); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = PyNumber_InPlaceSubtract(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_14, __pyx_t_6) < 0)) __PYX_ERR(0, 4396, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 4397: 
 4398: #####################################################################################################################
 4399: #####################################################################################################################
 4400: #####################################################################################################################
 4401: 
 4402: 
 4403: #####################################################################################################################
 4404: ######  Canal loop with capacity constraints - find demand & deliver flood/contract/recharge/recovery water #########
 4405: #####################################################################################################################
 4406: 
+4407:   def set_canal_direction(self, flow_type):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_81set_canal_direction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_81set_canal_direction = {"set_canal_direction", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_81set_canal_direction, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_81set_canal_direction(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_flow_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_canal_direction (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_flow_type,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_direction", 1, 2, 2, 1); __PYX_ERR(0, 4407, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_canal_direction") < 0)) __PYX_ERR(0, 4407, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_flow_type = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_canal_direction", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4407, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_canal_direction", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_80set_canal_direction(__pyx_self, __pyx_v_self, __pyx_v_flow_type);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_80set_canal_direction(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_flow_type) {
  long __pyx_v_adjust_both_types;
  long __pyx_v_adjust_one_type;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__66)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_canal_direction", 0);
  __Pyx_TraceCall("set_canal_direction", __pyx_f[0], 4407, 0, __PYX_ERR(0, 4407, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_canal_direction", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__129 = PyTuple_Pack(4, __pyx_n_s_self, __pyx_n_s_flow_type, __pyx_n_s_adjust_both_types, __pyx_n_s_adjust_one_type); if (unlikely(!__pyx_tuple__129)) __PYX_ERR(0, 4407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__129);
  __Pyx_GIVEREF(__pyx_tuple__129);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_81set_canal_direction, 0, __pyx_n_s_Model_set_canal_direction, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__66)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4407, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_canal_direction, __pyx_t_2) < 0) __PYX_ERR(0, 4407, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__66 = (PyObject*)__Pyx_PyCode_New(2, 0, 4, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__129, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_canal_direction, 4407, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__66)) __PYX_ERR(0, 4407, __pyx_L1_error)
 4408:     ##This function determines the flow direction on the cross valley canal based on the use of the turnouts w/ the 
 4409: 	##California Aqueduct, Friant-Kern Canal, and/or Kern River. 
+4410:     adjust_both_types = 1
  __pyx_v_adjust_both_types = 1;
+4411:     adjust_one_type = 0
  __pyx_v_adjust_one_type = 0;
+4412:     if flow_type == "recharge":
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recharge, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4412, __pyx_L1_error)
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
+4413:       self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[18], "normal", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_locked); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4413, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_t_3, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4413, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_t_3, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4413, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_n_u_xvc);
      PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_t_7);
      __pyx_t_3 = 0;
      __pyx_t_5 = 0;
      __pyx_t_7 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 4414:       #self.fkc.find_bi_directional(self.calaqueduct.turnout_use[15], "normal", "reverse", flow_type, 'xvc', adjust_both_types,  self.xvc.locked)
+4415:       if self.calaqueduct.turnout_use[18] > 0.0:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4415, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4415, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4416:         self.xvc.locked = 1
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4416, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_locked, __pyx_int_1) < 0) __PYX_ERR(0, 4416, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 4417:       #if self.kwbcanal.capacity["reverse"][2] > 0.0:
 4418:         #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc')
 4419:         #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc')
 4420:       #else:
 4421:       #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
 4422:       #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "reverse", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
 4423:       #if self.fkc.turnout_use[22] > 0.0:
 4424:         #self.xvc.locked = 1
 4425: 
+4426:       self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[19], "normal", "normal", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_7, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_locked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_9)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_t_2, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_7, __pyx_t_3};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4426, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_t_2, __pyx_n_u_normal, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_7, __pyx_t_3};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4426, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4426, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_2);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_n_u_kbc);
      PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_8, __pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_6, 6+__pyx_t_8, __pyx_t_3);
      __pyx_t_2 = 0;
      __pyx_t_7 = 0;
      __pyx_t_3 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4426, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4427:       self.kerncanal.find_bi_directional(self.calaqueduct.turnout_use[19], "closed", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_locked); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_9, __pyx_n_u_closed, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_3, __pyx_t_2};
      __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4427, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_t_9, __pyx_n_u_closed, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_3, __pyx_t_2};
      __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4427, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4427, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_9);
      __Pyx_INCREF(__pyx_n_u_closed);
      __Pyx_GIVEREF(__pyx_n_u_closed);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_n_u_closed);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_n_u_kbc);
      PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_8, __pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_8, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_8, __pyx_t_2);
      __pyx_t_9 = 0;
      __pyx_t_3 = 0;
      __pyx_t_2 = 0;
      __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4427, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4428:       if self.calaqueduct.turnout_use[19] > 0.0:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_6, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4428, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4428, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4428, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4429:         self.kwbcanal.locked = 1
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4429, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_locked, __pyx_int_1) < 0) __PYX_ERR(0, 4429, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 4430: 
 4431:       #self.calaqueduct.find_bi_directional(self.kerncanal.turnout_use[5], "reverse", "normal", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
 4432:       #self.kerncanal.find_bi_directional(self.kerncanal.turnout_use[5], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
 4433:       #if self.kerncanal.turnout_use[5] > 0.0:
 4434:         #self.kwbcanal.locked = 1
 4435: 
+4436:     elif flow_type == "recovery":
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4436, __pyx_L1_error)
  if (__pyx_t_1) {
/* … */
  }
  __pyx_L3:;
+4437:       self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[18], "reverse", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_2, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_locked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4437, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_2, __pyx_t_9};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4437, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_5)) {
      PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_t_4, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_2, __pyx_t_9};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_5, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4437, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_8, __pyx_t_4);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_n_u_xvc);
      PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_8, __pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_8, __pyx_t_2);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_8, __pyx_t_9);
      __pyx_t_4 = 0;
      __pyx_t_2 = 0;
      __pyx_t_9 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 4438:       #self.fkc.find_bi_directional(self.calaqueduct.turnout_use[15], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
+4439:       self.kernriverchannel.find_bi_directional(self.calaqueduct.turnout_use[18], "reverse", "reverse", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_9, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyInt_From_long(__pyx_v_adjust_one_type); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_locked); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[8] = {__pyx_t_2, __pyx_t_5, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_9, __pyx_t_4};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[8] = {__pyx_t_2, __pyx_t_5, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_9, __pyx_t_4};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    } else
    #endif
    {
      __pyx_t_3 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4439, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (__pyx_t_2) {
        __Pyx_GIVEREF(__pyx_t_2); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2); __pyx_t_2 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_5);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_n_u_xvc);
      PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_t_9);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_8, __pyx_t_4);
      __pyx_t_5 = 0;
      __pyx_t_9 = 0;
      __pyx_t_4 = 0;
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4439, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4440:       if self.calaqueduct.turnout_use[18] > 0.0:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_7, 18, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4440, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyObject_RichCompare(__pyx_t_6, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4440, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4440, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4441:         self.xvc.locked = 1
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4441, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_locked, __pyx_int_1) < 0) __PYX_ERR(0, 4441, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4442: 
 4443:       #self.calaqueduct.find_bi_directional(self.fkc.turnout_use[22], "normal", "reverse", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
 4444:       #self.fkc.find_bi_directional(self.fkc.turnout_use[22], "normal", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
 4445:       #self.kernriverchannel.find_bi_directional(self.fkc.turnout_use[22], "normal", "reverse", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
 4446:       #if self.fkc.turnout_use[22] > 0.0:
 4447:         #self.xvc.locked = 1
 4448: 
+4449:       self.calaqueduct.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "reverse", flow_type, adjust_both_types, 'xvc', self.xvc.locked)
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_4, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_locked); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_9)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_9);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_6, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_t_4, __pyx_n_u_xvc, __pyx_t_5};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4449, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_t_6, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_t_4, __pyx_n_u_xvc, __pyx_t_5};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4449, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_2 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4449, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__pyx_t_9) {
        __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_9); __pyx_t_9 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_8, __pyx_t_6);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_2, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_2, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_2, 4+__pyx_t_8, __pyx_t_4);
      __Pyx_INCREF(__pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_n_u_xvc);
      PyTuple_SET_ITEM(__pyx_t_2, 5+__pyx_t_8, __pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_2, 6+__pyx_t_8, __pyx_t_5);
      __pyx_t_6 = 0;
      __pyx_t_4 = 0;
      __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_2, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4449, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4450:       #self.fkc.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "normal", flow_type, 'xvc', adjust_both_types, self.xvc.locked)
+4451:       self.kernriverchannel.find_bi_directional(self.kernriverchannel.turnout_use[4], "reverse", "normal", flow_type, 'xvc', adjust_one_type, self.xvc.locked)
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyInt_From_long(__pyx_v_adjust_one_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_locked); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_3, __pyx_n_u_reverse, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4451, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[8] = {__pyx_t_4, __pyx_t_3, __pyx_n_u_reverse, __pyx_n_u_normal, __pyx_v_flow_type, __pyx_n_u_xvc, __pyx_t_5, __pyx_t_6};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4451, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4451, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_4) {
        __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_4); __pyx_t_4 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_3);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_normal);
      __Pyx_GIVEREF(__pyx_n_u_normal);
      PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_n_u_normal);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_n_u_xvc);
      PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_n_u_xvc);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_5);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_9, 6+__pyx_t_8, __pyx_t_6);
      __pyx_t_3 = 0;
      __pyx_t_5 = 0;
      __pyx_t_6 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4451, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4452:       if self.kernriverchannel.turnout_use[4] > 0.0:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriverchannel); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4452, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4452, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_2, 4, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4452, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_7, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4452, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4452, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4453:         self.xvc.locked = 1
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_xvc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4453, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_locked, __pyx_int_1) < 0) __PYX_ERR(0, 4453, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 4454: 
 4455: 
+4456:       self.calaqueduct.find_bi_directional(self.calaqueduct.turnout_use[19], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_GetItemInt(__pyx_t_6, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_locked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4456, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_9);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_9, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_9)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4456, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
      PyObject *__pyx_temp[8] = {__pyx_t_5, __pyx_t_7, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_6, __pyx_t_3};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4456, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_4 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_8, __pyx_t_7);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_n_u_kbc);
      PyTuple_SET_ITEM(__pyx_t_4, 4+__pyx_t_8, __pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_4, 5+__pyx_t_8, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_4, 6+__pyx_t_8, __pyx_t_3);
      __pyx_t_7 = 0;
      __pyx_t_6 = 0;
      __pyx_t_3 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_4, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4456, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4457:       self.kerncanal.find_bi_directional(self.calaqueduct.turnout_use[19], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerncanal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_find_bi_directional); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_GetItemInt(__pyx_t_3, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_v_adjust_both_types); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_locked); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4457, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_3, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4457, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_6, __pyx_t_9, __pyx_n_u_reverse, __pyx_n_u_reverse, __pyx_v_flow_type, __pyx_n_u_kbc, __pyx_t_3, __pyx_t_7};
      __pyx_t_2 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4457, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4457, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_6) {
        __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_6); __pyx_t_6 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_t_9);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_n_u_reverse);
      __Pyx_GIVEREF(__pyx_n_u_reverse);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_n_u_reverse);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_n_u_kbc);
      PyTuple_SET_ITEM(__pyx_t_5, 4+__pyx_t_8, __pyx_n_u_kbc);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_5, 5+__pyx_t_8, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_7);
      PyTuple_SET_ITEM(__pyx_t_5, 6+__pyx_t_8, __pyx_t_7);
      __pyx_t_9 = 0;
      __pyx_t_3 = 0;
      __pyx_t_7 = 0;
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_5, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4457, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+4458:       if self.calaqueduct.turnout_use[19] > 0.0:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_calaqueduct); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_4, 19, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4458, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4458, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4458, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {
/* … */
    }
+4459:         self.kwbcanal.locked = 1
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_locked, __pyx_int_1) < 0) __PYX_ERR(0, 4459, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 4460: 
 4461:       #self.calaqueduct.find_bi_directional(self.kerncanal.turnout_use[4], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
 4462:       #self.kerncanal.find_bi_directional(self.kerncanal.turnout_use[4], "reverse", "reverse", flow_type, 'kbc', adjust_both_types, self.kwbcanal.locked)
 4463:       #if self.kerncanal.turnout_use[5] > 0.0:
 4464:         #self.kwbcanal.locked = 1
 4465: 
 4466: 
+4467:   def set_canal_range(self, flow_dir, flow_type, canal, prev_canal, canal_size):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_83set_canal_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_83set_canal_range = {"set_canal_range", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_83set_canal_range, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_83set_canal_range(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_flow_dir = 0;
  PyObject *__pyx_v_flow_type = 0;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_prev_canal = 0;
  PyObject *__pyx_v_canal_size = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_canal_range (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_canal_size,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, 1); __PYX_ERR(0, 4467, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, 2); __PYX_ERR(0, 4467, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, 3); __PYX_ERR(0, 4467, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, 4); __PYX_ERR(0, 4467, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal_size)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, 5); __PYX_ERR(0, 4467, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_canal_range") < 0)) __PYX_ERR(0, 4467, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_self = values[0];
    __pyx_v_flow_dir = values[1];
    __pyx_v_flow_type = values[2];
    __pyx_v_canal = values[3];
    __pyx_v_prev_canal = values[4];
    __pyx_v_canal_size = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_canal_range", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4467, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_canal_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_82set_canal_range(__pyx_self, __pyx_v_self, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_canal_size);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_82set_canal_range(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, PyObject *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_canal_size) {
  PyObject *__pyx_v_total_canal = NULL;
  PyObject *__pyx_v_starting_point = NULL;
  PyObject *__pyx_v_new_canal = NULL;
  PyObject *__pyx_v_canal_range = NULL;
  PyObject *__pyx_v_ending_point = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__67)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_canal_range", 0);
  __Pyx_TraceCall("set_canal_range", __pyx_f[0], 4467, 0, __PYX_ERR(0, 4467, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_canal_range", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_total_canal);
  __Pyx_XDECREF(__pyx_v_starting_point);
  __Pyx_XDECREF(__pyx_v_new_canal);
  __Pyx_XDECREF(__pyx_v_canal_range);
  __Pyx_XDECREF(__pyx_v_ending_point);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__130 = PyTuple_Pack(11, __pyx_n_s_self, __pyx_n_s_flow_dir, __pyx_n_s_flow_type, __pyx_n_s_canal, __pyx_n_s_prev_canal, __pyx_n_s_canal_size, __pyx_n_s_total_canal, __pyx_n_s_starting_point, __pyx_n_s_new_canal, __pyx_n_s_canal_range, __pyx_n_s_ending_point); if (unlikely(!__pyx_tuple__130)) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__130);
  __Pyx_GIVEREF(__pyx_tuple__130);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_83set_canal_range, 0, __pyx_n_s_Model_set_canal_range, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__67)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_canal_range, __pyx_t_2) < 0) __PYX_ERR(0, 4467, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__67 = (PyObject*)__Pyx_PyCode_New(6, 0, 11, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__130, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_canal_range, 4467, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__67)) __PYX_ERR(0, 4467, __pyx_L1_error)
 4468:     #this function searches through the self.canal_district dictionary to find the 
 4469: 	#node index range for any canal, given the flow direction on the canal and the 
 4470: 	#previous or connecting canal (i.e., where the water is coming from).  If this is
 4471: 	#the first canal in a search series (and the water is coming from a reservoir), this
 4472: 	#function will identify that reservoir as the starting point and find the node index range
 4473: 	#for a canal starting at the reservoir
 4474: 	#EXAMPLE - if flow is coming from the friant-kern canal, and flowing in 'reverse' direction
 4475: 	#onto the cross valley canal, this function will identify the 'starting point' on the XVC
 4476: 	#as node #9 (index starts at zero) and the 'range' of flow as nodes #8-#0 (at which point the 
 4477:     #search will continue onto the california aqueduct
+4478:     total_canal = self.canal_district_len[canal.name]
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_total_canal = __pyx_t_3;
  __pyx_t_3 = 0;
 4479:     #recharge flows move down the canals starting from the reservoirs
+4480:     if flow_type == "recharge":
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recharge, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4480, __pyx_L1_error)
  if (__pyx_t_4) {
/* … */
    goto __pyx_L3;
  }
+4481:       for starting_point, new_canal in enumerate(self.canal_district[canal.name]):
    __Pyx_INCREF(__pyx_int_0);
    __pyx_t_3 = __pyx_int_0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4481, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4481, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4481, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4481, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4481, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4481, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_7(__pyx_t_1);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4481, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_new_canal, __pyx_t_5);
      __pyx_t_5 = 0;
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_3);
      __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_t_3, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4481, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3);
      __pyx_t_3 = __pyx_t_5;
      __pyx_t_5 = 0;
/* … */
    }
    __pyx_L5_break:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4482:         if new_canal.key == prev_canal:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4482, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4482, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4482, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_4) {
/* … */
      }
+4483:           break
        goto __pyx_L5_break;
+4484:       if flow_dir == "normal":
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4484, __pyx_L1_error)
    if (__pyx_t_4) {
/* … */
      goto __pyx_L7;
    }
+4485:         starting_point += 1
      if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4485, __pyx_L1_error) }
      __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_starting_point, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4485, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_3);
      __pyx_t_3 = 0;
+4486:         canal_range = range(starting_point,canal_size)
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4486, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_starting_point);
      __Pyx_GIVEREF(__pyx_v_starting_point);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_starting_point);
      __Pyx_INCREF(__pyx_v_canal_size);
      __Pyx_GIVEREF(__pyx_v_canal_size);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_canal_size);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4486, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_canal_range = __pyx_t_1;
      __pyx_t_1 = 0;
+4487:       elif flow_dir == "reverse":
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4487, __pyx_L1_error)
    if (__pyx_t_4) {
/* … */
      goto __pyx_L7;
    }
+4488:         starting_point -= 1
      if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4488, __pyx_L1_error) }
      __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_starting_point, __pyx_int_1, 1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4488, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_starting_point, __pyx_t_1);
      __pyx_t_1 = 0;
+4489:         canal_range = range(starting_point,total_canal - canal_size,-1)
      __pyx_t_1 = PyNumber_Subtract(__pyx_v_total_canal, __pyx_v_canal_size); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4489, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4489, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_v_starting_point);
      __Pyx_GIVEREF(__pyx_v_starting_point);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_starting_point);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
      __Pyx_INCREF(__pyx_int_neg_1);
      __Pyx_GIVEREF(__pyx_int_neg_1);
      PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_neg_1);
      __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4489, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_canal_range = __pyx_t_1;
      __pyx_t_1 = 0;
 4490:       else:
+4491:         return (range(0, 0), 0.0)
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4491, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4491, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_1);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_GIVEREF(__pyx_float_0_0);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_float_0_0);
      __pyx_t_1 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
    __pyx_L7:;
/* … */
  __pyx_tuple__68 = PyTuple_Pack(2, __pyx_int_0, __pyx_int_0); if (unlikely(!__pyx_tuple__68)) __PYX_ERR(0, 4491, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__68);
  __Pyx_GIVEREF(__pyx_tuple__68);
 4492: 
+4493:     elif flow_type == "recovery":
  __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4493, __pyx_L1_error)
  if (__pyx_t_4) {
/* … */
  }
  __pyx_L3:;
+4494:       if flow_dir == "normal":
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4494, __pyx_L1_error)
    if (__pyx_t_4) {
/* … */
      goto __pyx_L8;
    }
+4495:         if self.canal_district[canal.name][0].is_Reservoir:
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_GetItemInt(__pyx_t_2, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_is_Reservoir); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4495, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (__pyx_t_4) {
/* … */
        goto __pyx_L9;
      }
+4496:           starting_point = 1
        __Pyx_INCREF(__pyx_int_1);
        __pyx_v_starting_point = __pyx_int_1;
 4497:         else:
+4498:           starting_point = 0
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __pyx_v_starting_point = __pyx_int_0;
      }
      __pyx_L9:;
+4499:         if prev_canal == "none":
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_prev_canal, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4499, __pyx_L1_error)
      if (__pyx_t_4) {
/* … */
        goto __pyx_L10;
      }
+4500:           canal_range = range(starting_point, canal_size)
        __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4500, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_v_starting_point);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_starting_point);
        __Pyx_INCREF(__pyx_v_canal_size);
        __Pyx_GIVEREF(__pyx_v_canal_size);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_canal_size);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4500, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_v_canal_range = __pyx_t_1;
        __pyx_t_1 = 0;
 4501:         else:
+4502:           for ending_point, new_canal in enumerate(self.canal_district[canal.name]):
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __pyx_t_1 = __pyx_int_0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4502, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4502, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4502, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
          __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
          __pyx_t_7 = NULL;
        } else {
          __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4502, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        for (;;) {
          if (likely(!__pyx_t_7)) {
            if (likely(PyList_CheckExact(__pyx_t_3))) {
              if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4502, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4502, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            } else {
              if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4502, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4502, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            }
          } else {
            __pyx_t_5 = __pyx_t_7(__pyx_t_3);
            if (unlikely(!__pyx_t_5)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4502, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_v_new_canal, __pyx_t_5);
          __pyx_t_5 = 0;
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_ending_point, __pyx_t_1);
          __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4502, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1);
          __pyx_t_1 = __pyx_t_5;
          __pyx_t_5 = 0;
/* … */
        }
        __pyx_L12_break:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4503:             if new_canal.key == prev_canal:
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4503, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4503, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4503, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_4) {
/* … */
          }
+4504:               break
            goto __pyx_L12_break;
+4505:           if ending_point == 0:
        if (unlikely(!__pyx_v_ending_point)) { __Pyx_RaiseUnboundLocalError("ending_point"); __PYX_ERR(0, 4505, __pyx_L1_error) }
        __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_ending_point, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4505, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4505, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_4) {
/* … */
          goto __pyx_L14;
        }
+4506:             if canal.recovery_feeder:
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_feeder); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4506, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4506, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          if (__pyx_t_4) {
/* … */
            goto __pyx_L15;
          }
+4507:               canal_range = (0, 0)
            __Pyx_INCREF(__pyx_tuple__68);
            __pyx_v_canal_range = __pyx_tuple__68;
 4508:             else:
+4509:               canal_range = range(starting_point, self.canal_district_len[canal.name])
          /*else*/ {
            __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_INCREF(__pyx_v_starting_point);
            __Pyx_GIVEREF(__pyx_v_starting_point);
            PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_starting_point);
            __Pyx_GIVEREF(__pyx_t_2);
            PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
            __pyx_t_2 = 0;
            __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4509, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_v_canal_range = __pyx_t_2;
            __pyx_t_2 = 0;
          }
          __pyx_L15:;
 4510:           else:
 4511:             #ending_point -= 1			  
+4512:             canal_range = range(starting_point, ending_point)
        /*else*/ {
          if (unlikely(!__pyx_v_ending_point)) { __Pyx_RaiseUnboundLocalError("ending_point"); __PYX_ERR(0, 4512, __pyx_L1_error) }
          __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4512, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_INCREF(__pyx_v_starting_point);
          __Pyx_GIVEREF(__pyx_v_starting_point);
          PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_starting_point);
          __Pyx_INCREF(__pyx_v_ending_point);
          __Pyx_GIVEREF(__pyx_v_ending_point);
          PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_v_ending_point);
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4512, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          __pyx_v_canal_range = __pyx_t_3;
          __pyx_t_3 = 0;
        }
        __pyx_L14:;
      }
      __pyx_L10:;
+4513:       elif flow_dir == "reverse":
    __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4513, __pyx_L1_error)
    if (__pyx_t_4) {
/* … */
      goto __pyx_L8;
    }
+4514:         starting_point = self.canal_district_len[canal.name] - 1
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4514, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4514, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4514, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyInt_SubtractObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4514, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_v_starting_point = __pyx_t_2;
      __pyx_t_2 = 0;
+4515:         if prev_canal == "none":
      __pyx_t_4 = (__Pyx_PyUnicode_Equals(__pyx_v_prev_canal, __pyx_n_u_none, Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4515, __pyx_L1_error)
      if (__pyx_t_4) {
/* … */
        goto __pyx_L16;
      }
+4516:           canal_range = range(starting_point, -1, -1)
        __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4516, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_INCREF(__pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_v_starting_point);
        PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_starting_point);
        __Pyx_INCREF(__pyx_int_neg_1);
        __Pyx_GIVEREF(__pyx_int_neg_1);
        PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_neg_1);
        __Pyx_INCREF(__pyx_int_neg_1);
        __Pyx_GIVEREF(__pyx_int_neg_1);
        PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_neg_1);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4516, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_v_canal_range = __pyx_t_1;
        __pyx_t_1 = 0;
 4517:         else:
+4518:           for ending_point, new_canal in enumerate(self.canal_district[canal.name]):
      /*else*/ {
        __Pyx_INCREF(__pyx_int_0);
        __pyx_t_1 = __pyx_int_0;
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4518, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4518, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4518, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
          __pyx_t_3 = __pyx_t_5; __Pyx_INCREF(__pyx_t_3); __pyx_t_6 = 0;
          __pyx_t_7 = NULL;
        } else {
          __pyx_t_6 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4518, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_7 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4518, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        for (;;) {
          if (likely(!__pyx_t_7)) {
            if (likely(PyList_CheckExact(__pyx_t_3))) {
              if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4518, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4518, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            } else {
              if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 4518, __pyx_L1_error)
              #else
              __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4518, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_5);
              #endif
            }
          } else {
            __pyx_t_5 = __pyx_t_7(__pyx_t_3);
            if (unlikely(!__pyx_t_5)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4518, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_5);
          }
          __Pyx_XDECREF_SET(__pyx_v_new_canal, __pyx_t_5);
          __pyx_t_5 = 0;
          __Pyx_INCREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_ending_point, __pyx_t_1);
          __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_t_1, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4518, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __Pyx_DECREF(__pyx_t_1);
          __pyx_t_1 = __pyx_t_5;
          __pyx_t_5 = 0;
/* … */
        }
        __pyx_L18_break:;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+4519:             if new_canal.key == prev_canal:
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_new_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4519, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_v_prev_canal, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4519, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4519, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_4) {
/* … */
          }
+4520:               break
            goto __pyx_L18_break;
+4521:           if ending_point == (self.canal_district_len[canal.name] - 1):
        if (unlikely(!__pyx_v_ending_point)) { __Pyx_RaiseUnboundLocalError("ending_point"); __PYX_ERR(0, 4521, __pyx_L1_error) }
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyObject_RichCompare(__pyx_v_ending_point, __pyx_t_3, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4521, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        if (__pyx_t_4) {
/* … */
          goto __pyx_L20;
        }
+4522:             if canal.recovery_feeder:
          __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_feeder); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4522, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 4522, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
          if (__pyx_t_4) {
/* … */
            goto __pyx_L21;
          }
+4523:               canal_range = (0,0)
            __Pyx_INCREF(__pyx_tuple__68);
            __pyx_v_canal_range = __pyx_tuple__68;
 4524:             else:
+4525:               canal_range = range(starting_point, 0, -1)
          /*else*/ {
            __pyx_t_2 = PyTuple_New(3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4525, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            __Pyx_INCREF(__pyx_v_starting_point);
            __Pyx_GIVEREF(__pyx_v_starting_point);
            PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_v_starting_point);
            __Pyx_INCREF(__pyx_int_0);
            __Pyx_GIVEREF(__pyx_int_0);
            PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_int_0);
            __Pyx_INCREF(__pyx_int_neg_1);
            __Pyx_GIVEREF(__pyx_int_neg_1);
            PyTuple_SET_ITEM(__pyx_t_2, 2, __pyx_int_neg_1);
            __pyx_t_3 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4525, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
            __pyx_v_canal_range = __pyx_t_3;
            __pyx_t_3 = 0;
          }
          __pyx_L21:;
 4526:           else:
 4527:             #ending_point += 1
+4528:             canal_range = range(starting_point, ending_point, -1)
        /*else*/ {
          if (unlikely(!__pyx_v_ending_point)) { __Pyx_RaiseUnboundLocalError("ending_point"); __PYX_ERR(0, 4528, __pyx_L1_error) }
          __pyx_t_3 = PyTuple_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4528, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_INCREF(__pyx_v_starting_point);
          __Pyx_GIVEREF(__pyx_v_starting_point);
          PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_starting_point);
          __Pyx_INCREF(__pyx_v_ending_point);
          __Pyx_GIVEREF(__pyx_v_ending_point);
          PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_ending_point);
          __Pyx_INCREF(__pyx_int_neg_1);
          __Pyx_GIVEREF(__pyx_int_neg_1);
          PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_int_neg_1);
          __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4528, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_v_canal_range = __pyx_t_2;
          __pyx_t_2 = 0;
        }
        __pyx_L20:;
      }
      __pyx_L16:;
 4529:       else:
+4530:         return(range(0, 0), 0.0)
    /*else*/ {
      __Pyx_XDECREF(__pyx_r);
      __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_tuple__68, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4530, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_2);
      PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_GIVEREF(__pyx_float_0_0);
      PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_float_0_0);
      __pyx_t_2 = 0;
      __pyx_r = __pyx_t_3;
      __pyx_t_3 = 0;
      goto __pyx_L0;
    }
    __pyx_L8:;
+4531:     return canal_range, starting_point
  __Pyx_XDECREF(__pyx_r);
  if (unlikely(!__pyx_v_canal_range)) { __Pyx_RaiseUnboundLocalError("canal_range"); __PYX_ERR(0, 4531, __pyx_L1_error) }
  if (unlikely(!__pyx_v_starting_point)) { __Pyx_RaiseUnboundLocalError("starting_point"); __PYX_ERR(0, 4531, __pyx_L1_error) }
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4531, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_v_canal_range);
  __Pyx_GIVEREF(__pyx_v_canal_range);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_v_canal_range);
  __Pyx_INCREF(__pyx_v_starting_point);
  __Pyx_GIVEREF(__pyx_v_starting_point);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_v_starting_point);
  __pyx_r = __pyx_t_3;
  __pyx_t_3 = 0;
  goto __pyx_L0;
 4532: 
 4533: 
 4534: 
+4535:   def distribute_canal_deliveries(self, int dowy, canal, prev_canal, contract_canal, double available_flow, int canal_size, int wateryear, str flow_dir, str flow_type, str search_type):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_85distribute_canal_deliveries(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_85distribute_canal_deliveries = {"distribute_canal_deliveries", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_85distribute_canal_deliveries, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_85distribute_canal_deliveries(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  int __pyx_v_dowy;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_prev_canal = 0;
  PyObject *__pyx_v_contract_canal = 0;
  double __pyx_v_available_flow;
  int __pyx_v_canal_size;
  int __pyx_v_wateryear;
  PyObject *__pyx_v_flow_dir = 0;
  PyObject *__pyx_v_flow_type = 0;
  PyObject *__pyx_v_search_type = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("distribute_canal_deliveries (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_dowy,&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_contract_canal,&__pyx_n_s_available_flow,&__pyx_n_s_canal_size,&__pyx_n_s_wateryear,&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,&__pyx_n_s_search_type,0};
    PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 1); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 2); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 3); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 4); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_available_flow)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 5); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal_size)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 6); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 7); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 8); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 9); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, 10); __PYX_ERR(0, 4535, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "distribute_canal_deliveries") < 0)) __PYX_ERR(0, 4535, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
    }
    __pyx_v_self = values[0];
    __pyx_v_dowy = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_dowy == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4535, __pyx_L3_error)
    __pyx_v_canal = values[2];
    __pyx_v_prev_canal = values[3];
    __pyx_v_contract_canal = values[4];
    __pyx_v_available_flow = __pyx_PyFloat_AsDouble(values[5]); if (unlikely((__pyx_v_available_flow == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4535, __pyx_L3_error)
    __pyx_v_canal_size = __Pyx_PyInt_As_int(values[6]); if (unlikely((__pyx_v_canal_size == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4535, __pyx_L3_error)
    __pyx_v_wateryear = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_wateryear == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4535, __pyx_L3_error)
    __pyx_v_flow_dir = ((PyObject*)values[8]);
    __pyx_v_flow_type = ((PyObject*)values[9]);
    __pyx_v_search_type = ((PyObject*)values[10]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("distribute_canal_deliveries", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4535, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.distribute_canal_deliveries", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flow_dir), (&PyUnicode_Type), 1, "flow_dir", 1))) __PYX_ERR(0, 4535, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flow_type), (&PyUnicode_Type), 1, "flow_type", 1))) __PYX_ERR(0, 4535, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_search_type), (&PyUnicode_Type), 1, "search_type", 1))) __PYX_ERR(0, 4535, __pyx_L1_error)
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_84distribute_canal_deliveries(__pyx_self, __pyx_v_self, __pyx_v_dowy, __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_v_available_flow, __pyx_v_canal_size, __pyx_v_wateryear, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_search_type);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_84distribute_canal_deliveries(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_dowy, PyObject *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, double __pyx_v_available_flow, int __pyx_v_canal_size, int __pyx_v_wateryear, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, PyObject *__pyx_v_search_type) {
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *__pyx_cur_scope;
  PyObject *__pyx_v_type_list = 0;
  PyObject *__pyx_v_priority_list = 0;
  PyObject *__pyx_v_contract_list = 0;
  PyObject *__pyx_v_empty_demands = 0;
  PyObject *__pyx_v_type_deliveries = 0;
  PyObject *__pyx_v_type_demands = 0;
  PyObject *__pyx_v_type_fractions = 0;
  PyObject *__pyx_v_canal_fractions = 0;
  PyObject *__pyx_v_priorities = 0;
  PyObject *__pyx_v_priority_turnout_adjusted = 0;
  PyObject *__pyx_v_delivery_by_contract = 0;
  PyObject *__pyx_v_private_deliveries = 0;
  PyObject *__pyx_v_city_deliveries = 0;
  PyObject *__pyx_v_unmet_demands = 0;
  PyObject *__pyx_v_canal_demands = 0;
  CYTHON_UNUSED PyObject *__pyx_v_unmet_canal_demands = 0;
  int __pyx_v_toggle_partial_delivery;
  int __pyx_v_toggle_district_recharge;
  int __pyx_v_starting_point;
  int __pyx_v_num_members;
  int __pyx_v_new_canal_size;
  int __pyx_v_turnback_end;
  double __pyx_v_excess_flow;
  CYTHON_UNUSED double __pyx_v_unmet_demand;
  double __pyx_v_total_demand;
  double __pyx_v_turnback_flow;
  double __pyx_v_excess_flow_int;
  double __pyx_v_available_capacity_int;
  double __pyx_v_private_demand_constraint;
  double __pyx_v_location_delivery;
  double __pyx_v_demand_constraint;
  double __pyx_v_current_storage;
  double __pyx_v_priority_bank_space;
  double __pyx_v_actual_deliveries;
  double __pyx_v_direct_deliveries;
  double __pyx_v_recharge_deliveries;
  double __pyx_v_undelivered;
  double __pyx_v_private_delivery_constraint;
  double __pyx_v_delivery_to_private;
  double __pyx_v_city_demand_constraint;
  double __pyx_v_city_delivery_constraint;
  double __pyx_v_turnout_available;
  double __pyx_v_new_excess_flow;
  double __pyx_v_remaining_excess_flow;
  double __pyx_v_deliveries;
  PyObject *__pyx_v_list_member = NULL;
  PyObject *__pyx_v_canal_loc = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_private_land = NULL;
  PyObject *__pyx_v_district_lands = NULL;
  PyObject *__pyx_v_city_pump = NULL;
  PyObject *__pyx_v_district_pump = NULL;
  PyObject *__pyx_v_new_flow_dir = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__69)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("distribute_canal_deliveries", 0);
  __pyx_cur_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *)__pyx_tp_new_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries(__pyx_ptype_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 4535, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __Pyx_TraceCall("distribute_canal_deliveries", __pyx_f[0], 4535, 0, __PYX_ERR(0, 4535, __pyx_L1_error));
  __pyx_cur_scope->__pyx_v_canal = __pyx_v_canal;
  __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal);
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_XDECREF(__pyx_t_25);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.distribute_canal_deliveries", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_type_list);
  __Pyx_XDECREF(__pyx_v_priority_list);
  __Pyx_XDECREF(__pyx_v_contract_list);
  __Pyx_XDECREF(__pyx_v_empty_demands);
  __Pyx_XDECREF(__pyx_v_type_deliveries);
  __Pyx_XDECREF(__pyx_v_type_demands);
  __Pyx_XDECREF(__pyx_v_type_fractions);
  __Pyx_XDECREF(__pyx_v_canal_fractions);
  __Pyx_XDECREF(__pyx_v_priorities);
  __Pyx_XDECREF(__pyx_v_priority_turnout_adjusted);
  __Pyx_XDECREF(__pyx_v_delivery_by_contract);
  __Pyx_XDECREF(__pyx_v_private_deliveries);
  __Pyx_XDECREF(__pyx_v_city_deliveries);
  __Pyx_XDECREF(__pyx_v_unmet_demands);
  __Pyx_XDECREF(__pyx_v_canal_demands);
  __Pyx_XDECREF(__pyx_v_unmet_canal_demands);
  __Pyx_XDECREF(__pyx_v_list_member);
  __Pyx_XDECREF(__pyx_v_canal_loc);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_private_land);
  __Pyx_XDECREF(__pyx_v_district_lands);
  __Pyx_XDECREF(__pyx_v_city_pump);
  __Pyx_XDECREF(__pyx_v_district_pump);
  __Pyx_XDECREF(__pyx_v_new_flow_dir);
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__131 = PyTuple_Pack(73, __pyx_n_s_self, __pyx_n_s_dowy, __pyx_n_s_canal, __pyx_n_s_prev_canal, __pyx_n_s_contract_canal, __pyx_n_s_available_flow, __pyx_n_s_canal_size, __pyx_n_s_wateryear, __pyx_n_s_flow_dir, __pyx_n_s_flow_type, __pyx_n_s_search_type, __pyx_n_s_type_list, __pyx_n_s_priority_list, __pyx_n_s_contract_list, __pyx_n_s_empty_demands, __pyx_n_s_type_deliveries, __pyx_n_s_type_demands, __pyx_n_s_type_fractions, __pyx_n_s_canal_fractions, __pyx_n_s_priorities, __pyx_n_s_priority_turnout_adjusted, __pyx_n_s_delivery_by_contract, __pyx_n_s_private_deliveries, __pyx_n_s_city_deliveries, __pyx_n_s_unmet_demands, __pyx_n_s_canal_demands, __pyx_n_s_unmet_canal_demands, __pyx_n_s_toggle_partial_delivery, __pyx_n_s_toggle_district_recharge, __pyx_n_s_starting_point, __pyx_n_s_num_members, __pyx_n_s_new_canal_size, __pyx_n_s_turnback_end, __pyx_n_s_excess_flow, __pyx_n_s_unmet_demand, __pyx_n_s_total_demand, __pyx_n_s_turnback_flow, __pyx_n_s_excess_flow_int, __pyx_n_s_available_capacity_int, __pyx_n_s_private_demand_constraint, __pyx_n_s_location_delivery, __pyx_n_s_demand_constraint, __pyx_n_s_current_storage, __pyx_n_s_priority_bank_space, __pyx_n_s_actual_deliveries, __pyx_n_s_direct_deliveries, __pyx_n_s_recharge_deliveries, __pyx_n_s_undelivered, __pyx_n_s_private_delivery_constraint, __pyx_n_s_delivery_to_private, __pyx_n_s_city_demand_constraint, __pyx_n_s_city_delivery_constraint, __pyx_n_s_turnout_available, __pyx_n_s_new_excess_flow, __pyx_n_s_remaining_excess_flow, __pyx_n_s_deliveries, __pyx_n_s_list_member, __pyx_n_s_canal_range, __pyx_n_s_zz, __pyx_n_s_canal_loc, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_wb_member, __pyx_n_s_y, __pyx_n_s_private_land, __pyx_n_s_district_lands, __pyx_n_s_city_pump, __pyx_n_s_district_pump, __pyx_n_s_new_flow_dir, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr, __pyx_n_s_genexpr); if (unlikely(!__pyx_tuple__131)) __PYX_ERR(0, 4535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__131);
  __Pyx_GIVEREF(__pyx_tuple__131);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_85distribute_canal_deliveries, 0, __pyx_n_s_Model_distribute_canal_deliverie_2, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__69)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4535, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_distribute_canal_deliveries, __pyx_t_2) < 0) __PYX_ERR(0, 4535, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__69 = (PyObject*)__Pyx_PyCode_New(11, 0, 73, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__131, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_distribute_canal_deliveries, 4535, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__69)) __PYX_ERR(0, 4535, __pyx_L1_error)
/* … */
struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries {
  PyObject_HEAD
  PyObject *__pyx_v_canal;
  PyObject *__pyx_v_canal_range;
  PyObject *__pyx_v_x;
  PyObject *__pyx_v_zz;
};

 4536:     ## Cython type declarations for whole function
 4537:     cdef list type_list, priority_list, contract_list
 4538:     cdef dict empty_demands, type_deliveries, type_demands, type_fractions, canal_fractions, priorities, priority_turnout_adjusted, \
 4539:               delivery_by_contract, private_deliveries, city_deliveries, unmet_demands, canal_demands, unmet_canal_demands
 4540:     cdef int toggle_partial_delivery, toggle_district_recharge, starting_point, num_members, new_canal_size, turnback_end
 4541:     cdef double excess_flow, unmet_demand, total_demand, turnback_flow, excess_flow_int, available_capacity_int, private_demand_constraint, \
 4542:               location_delivery, demand_constraint, current_storage, priority_bank_space, actual_deliveries, direct_deliveries, \
 4543:               recharge_deliveries, undelivered, private_delivery_constraint, delivery_to_private, city_demand_constraint, city_delivery_constraint, \
 4544:               turnout_available, new_excess_flow, remaining_excess_flow, deliveries
 4545: 
+4546:     if search_type == 'delivery':
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_delivery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4546, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
 4547:       #for regular deliveries, we need to distinguish between demands from each contract
 4548:       #because the distribute_canal_deliveries and search_canal_demands functions are called
 4549:       #one reservoir at a time, there are only multiple 'types' of demand when there are more
 4550:       #than one type of contract at a reservoir
 4551:       #NOTE: as it is currently written, this implies some sort of contract 'priority' structure
 4552:       #when there are more than one type of contract at a reservoir.  Not sure if this is a valid assumption
 4553:       #or if it makes a big deal - b/c this is only for direct irrigation deliveries, and not flood/recharge water,
 4554:       #it might not be a big deal
+4555:       type_list = [contract_canal]
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_contract_canal);
    __Pyx_GIVEREF(__pyx_v_contract_canal);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_contract_canal);
    __pyx_v_type_list = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
 4556:       # print(contract_canal, type_list)
+4557:       toggle_partial_delivery = 1
    __pyx_v_toggle_partial_delivery = 1;
+4558:       toggle_district_recharge = 0
    __pyx_v_toggle_district_recharge = 0;
+4559:     elif search_type == 'flood':
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_flood_2, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4559, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {
/* … */
    goto __pyx_L3;
  }
 4560:       #for flood flows, need to distinguish between districts with a contract
 4561:       #to the water being spilled (1st priority), districts with a turnout on
 4562:       #a 'favored' canal (i.e, one that won't disrupt flows from other sources,
 4563:       #2nd priority), and districts with turnouts on other canals that can still
 4564:       #be technically reached from this source (3rd priority)
+4565:       type_list = ['contractor', 'alternate', 'turnout', 'excess']
    __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4565, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_contractor);
    __Pyx_GIVEREF(__pyx_n_u_contractor);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_contractor);
    __Pyx_INCREF(__pyx_n_u_alternate);
    __Pyx_GIVEREF(__pyx_n_u_alternate);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_alternate);
    __Pyx_INCREF(__pyx_n_u_turnout);
    __Pyx_GIVEREF(__pyx_n_u_turnout);
    PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_turnout);
    __Pyx_INCREF(__pyx_n_u_excess);
    __Pyx_GIVEREF(__pyx_n_u_excess);
    PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_excess);
    __pyx_v_type_list = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
+4566:       toggle_partial_delivery = 0
    __pyx_v_toggle_partial_delivery = 0;
+4567:       toggle_district_recharge = 1
    __pyx_v_toggle_district_recharge = 1;
+4568:     elif search_type == 'banking':
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4568, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
  __pyx_L3:;
 4569:       #banking flows need to distinguish between priority space in recharge facilities (i.e., the percentage of the facility
 4570:       #'owned' by a particular district, and secondary space, which can be used by individual districts if they are not in use
 4571:       # by the 'owner'
+4572:       type_list = ['priority', 'secondary']
    __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4572, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_priority);
    __Pyx_GIVEREF(__pyx_n_u_priority);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_priority);
    __Pyx_INCREF(__pyx_n_u_secondary);
    __Pyx_GIVEREF(__pyx_n_u_secondary);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_secondary);
    __pyx_v_type_list = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
+4573:       toggle_partial_delivery = 0
    __pyx_v_toggle_partial_delivery = 0;
+4574:       toggle_district_recharge = 1
    __pyx_v_toggle_district_recharge = 1;
 4575: 
 4576:     #find the range of nodes to 'search' on this canal
+4577:     if flow_dir == "closed":
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_closed, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4577, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {
/* … */
  }
+4578:       empty_demands = {}
    __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4578, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_v_empty_demands = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
+4579:       for list_member in type_list:
    if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4579, __pyx_L1_error) }
    __pyx_t_3 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4579, __pyx_L1_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4579, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_list_member, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4580:         empty_demands[list_member] = 0.0
      if (unlikely(PyDict_SetItem(__pyx_v_empty_demands, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4580, __pyx_L1_error)
+4581:       return available_flow, empty_demands
    __Pyx_XDECREF(__pyx_r);
    __pyx_t_3 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4581, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_empty_demands);
    __Pyx_GIVEREF(__pyx_v_empty_demands);
    PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_empty_demands);
    __pyx_t_3 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    goto __pyx_L0;
 4582:     else:
+4583:       canal_range, starting_point = self.set_canal_range(flow_dir, flow_type, canal, prev_canal, canal_size)
  /*else*/ {
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4583, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_cur_scope->__pyx_v_canal, __pyx_v_prev_canal, __pyx_t_6};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
      PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_cur_scope->__pyx_v_canal, __pyx_v_prev_canal, __pyx_t_6};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_flow_dir);
      __Pyx_GIVEREF(__pyx_v_flow_dir);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_flow_dir);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal);
      __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal);
      PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_cur_scope->__pyx_v_canal);
      __Pyx_INCREF(__pyx_v_prev_canal);
      __Pyx_GIVEREF(__pyx_v_prev_canal);
      PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_prev_canal);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 4583, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_3 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_3 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_9);
      #else
      __pyx_t_3 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_6 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4583, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext;
      index = 0; __pyx_t_3 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_3)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_3);
      index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_6); if (unlikely(!__pyx_t_9)) goto __pyx_L7_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_6), 2) < 0) __PYX_ERR(0, 4583, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      goto __pyx_L8_unpacking_done;
      __pyx_L7_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 4583, __pyx_L1_error)
      __pyx_L8_unpacking_done:;
    }
    __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4583, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_GIVEREF(__pyx_t_3);
    __pyx_cur_scope->__pyx_v_canal_range = __pyx_t_3;
    __pyx_t_3 = 0;
    __pyx_v_starting_point = __pyx_t_8;
  }
 4584: 
 4585:     #initialize/clear dictionaries to store demand/delivery variables needed to take
 4586:   	#the total 'available flow' and distribute it among the canal nodes
+4587:     type_deliveries = {}
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4587, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_type_deliveries = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+4588:     type_demands = {}
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4588, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_type_demands = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+4589:     type_fractions = {}
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4589, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_type_fractions = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+4590:     for zz in type_list:
  if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4590, __pyx_L1_error) }
  __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
  for (;;) {
    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4590, __pyx_L1_error)
    #else
    __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4590, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    #endif
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4591:       type_deliveries[zz] = 0.0
    if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4591, __pyx_L1_error)
+4592:       type_demands[zz] = 0.0
    if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4592, __pyx_L1_error)
+4593:       type_fractions[zz] = 0.0
    if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4593, __pyx_L1_error)
 4594: 
 4595:     #make sure that the available flow is less than the initial capacity of the canal
+4596:     excess_flow = 0.0
  __pyx_v_excess_flow = 0.0;
+4597:     unmet_demand = 0.0
  __pyx_v_unmet_demand = 0.0;
+4598:     total_demand = 0.0
  __pyx_v_total_demand = 0.0;
+4599:     turnback_flow = 0.0
  __pyx_v_turnback_flow = 0.0;
+4600:     for canal_loc in canal_range:
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) {
    __pyx_t_5 = __pyx_cur_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4600, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4600, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4600, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4600, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4600, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_11(__pyx_t_5);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4600, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4601:       for zz in type_list:
    if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4601, __pyx_L1_error) }
    __pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
    for (;;) {
      if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_3 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4601, __pyx_L1_error)
      #else
      __pyx_t_3 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4601, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      #endif
      __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
      __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_3);
      __Pyx_GIVEREF(__pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4602:         type_demands[zz] += canal.demand[zz][canal_loc]
      __Pyx_INCREF(__pyx_cur_scope->__pyx_v_zz);
      __pyx_t_3 = __pyx_cur_scope->__pyx_v_zz;
      __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_canal_loc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = PyNumber_InPlaceAdd(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_t_3, __pyx_t_13) < 0)) __PYX_ERR(0, 4602, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4603:         total_demand += canal.demand[zz][canal_loc]
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_loc); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4603, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_total_demand = __pyx_t_14;
 4604: 
 4605:     #if the available flow is greater than the total demand on the canal, the difference 
 4606:     #is returned by the function as 'excess flow'
+4607:     if available_flow > total_demand:
  __pyx_t_1 = ((__pyx_v_available_flow > __pyx_v_total_demand) != 0);
  if (__pyx_t_1) {
/* … */
  }
+4608:       excess_flow += available_flow - total_demand
    __pyx_v_excess_flow = (__pyx_v_excess_flow + (__pyx_v_available_flow - __pyx_v_total_demand));
+4609:       available_flow = total_demand
    __pyx_v_available_flow = __pyx_v_total_demand;
 4610: 
+4611:     available_flow, excess_flow_int = canal.check_flow_capacity(available_flow, starting_point, flow_dir)
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_check_flow_capacity); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_13 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4611, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_3 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_9, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_7, __pyx_t_13, __pyx_v_flow_dir};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_7, __pyx_t_13, __pyx_v_flow_dir};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_7);
    PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_flow_dir);
    __Pyx_GIVEREF(__pyx_v_flow_dir);
    PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_flow_dir);
    __pyx_t_7 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 4611, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_9 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_9 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_6 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_9);
    __Pyx_INCREF(__pyx_t_6);
    #else
    __pyx_t_9 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_6 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_10 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_9 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_9)) goto __pyx_L16_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_9);
    index = 1; __pyx_t_6 = __pyx_t_10(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L16_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_13), 2) < 0) __PYX_ERR(0, 4611, __pyx_L1_error)
    __pyx_t_10 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L17_unpacking_done;
    __pyx_L16_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_10 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 4611, __pyx_L1_error)
    __pyx_L17_unpacking_done:;
  }
  __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4611, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_available_flow = __pyx_t_14;
  __pyx_v_excess_flow_int = __pyx_t_15;
+4612:     excess_flow += excess_flow_int
  __pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_excess_flow_int);
 4613: 
+4614:     available_capacity_int = max(available_flow, 0.0)
  __pyx_t_15 = 0.0;
  __pyx_t_14 = __pyx_v_available_flow;
  if (((__pyx_t_15 > __pyx_t_14) != 0)) {
    __pyx_t_16 = __pyx_t_15;
  } else {
    __pyx_t_16 = __pyx_t_14;
  }
  __pyx_v_available_capacity_int = __pyx_t_16;
+4615:     for zz in type_list:
  if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4615, __pyx_L1_error) }
  __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
  for (;;) {
    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_6 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4615, __pyx_L1_error)
    #else
    __pyx_t_6 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4615, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    #endif
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4616:       if type_demands[zz] > 0.0:
    __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4616, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = PyObject_RichCompare(__pyx_t_6, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4616, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4616, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (__pyx_t_1) {
/* … */
      goto __pyx_L20;
    }
+4617:         type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
      __pyx_t_16 = 0.0;
      __pyx_t_15 = 1.0;
      __pyx_t_9 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_13 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_9 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = PyObject_RichCompare(__pyx_t_9, __pyx_t_13, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_1) {
        __pyx_t_7 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4617, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_6 = __pyx_t_7;
        __pyx_t_7 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_13);
        __pyx_t_6 = __pyx_t_13;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_INCREF(__pyx_t_6);
      __pyx_t_13 = __pyx_t_6;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_7 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = PyObject_RichCompare(__pyx_t_7, __pyx_t_13, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (__pyx_t_1) {
        __pyx_t_9 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4617, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = __pyx_t_9;
        __pyx_t_9 = 0;
      } else {
        __Pyx_INCREF(__pyx_t_13);
        __pyx_t_6 = __pyx_t_13;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __pyx_t_6;
      __Pyx_INCREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_t_13) < 0)) __PYX_ERR(0, 4617, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 4618:       else:
+4619:         type_fractions[zz] = 0.0
    /*else*/ {
      if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4619, __pyx_L1_error)
    }
    __pyx_L20:;
+4620:       available_capacity_int -= type_demands[zz]*type_fractions[zz]
    __pyx_t_13 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = PyNumber_Multiply(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = PyNumber_InPlaceSubtract(__pyx_t_13, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4620, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_available_capacity_int = __pyx_t_16;
 4621: 
 4622:     #canal priority
+4623:     priority_list = self.canal_priority[canal.name]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4623, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(PyList_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4623, __pyx_L1_error)
  __pyx_v_priority_list = ((PyObject*)__pyx_t_7);
  __pyx_t_7 = 0;
 4624:     #contracts on this canal
+4625:     contract_list = self.canal_contract[contract_canal]
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_contract_canal); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4625, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (!(likely(PyList_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4625, __pyx_L1_error)
  __pyx_v_contract_list = ((PyObject*)__pyx_t_9);
  __pyx_t_9 = 0;
+4626:     for x in self.district_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4626, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4626, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4626, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4626, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4626, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4626, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_11(__pyx_t_7);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4626, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4627:       x.private_demand = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_private_demand, __pyx_t_9) < 0) __PYX_ERR(0, 4627, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4628:       x.private_delivery = {}
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4628, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_private_delivery, __pyx_t_9) < 0) __PYX_ERR(0, 4628, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4629:     for x in self.urban_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_urban_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4629, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_9 = __pyx_t_7; __Pyx_INCREF(__pyx_t_9); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_11 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4629, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_9))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4629, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4629, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4629, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4629, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_11(__pyx_t_9);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4629, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4630:       x.private_demand = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4630, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_private_demand, __pyx_t_7) < 0) __PYX_ERR(0, 4630, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4631:       x.private_delivery = {}
    __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_private_delivery, __pyx_t_7) < 0) __PYX_ERR(0, 4631, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4632:     for x in self.private_list:
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4632, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
    __pyx_t_7 = __pyx_t_9; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4632, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_11 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4632, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_7))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4632, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4632, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4632, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4632, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_11(__pyx_t_7);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4632, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_9);
    __Pyx_GIVEREF(__pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4633:       for xx in x.district_list:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
      __pyx_t_5 = __pyx_t_9; __Pyx_INCREF(__pyx_t_5); __pyx_t_12 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4633, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_17 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4633, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4633, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4633, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4633, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4633, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
        }
      } else {
        __pyx_t_9 = __pyx_t_17(__pyx_t_5);
        if (unlikely(!__pyx_t_9)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4633, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_9);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_9);
      __pyx_t_9 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4634:         private_demand_constraint = x.find_node_demand(contract_list, search_type, xx)
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4634, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_6 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_13)) {
        PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4634, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_9);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
        PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4634, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_9);
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4634, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_xx);
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4634, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4634, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_private_demand_constraint = __pyx_t_16;
+4635:         self.district_keys[xx].private_demand[x.key] = private_demand_constraint
      __pyx_t_9 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_xx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_3, __pyx_t_9) < 0)) __PYX_ERR(0, 4635, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4636:         self.district_keys[xx].private_delivery[x.key] = x.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,xx)
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_13 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_18 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_xx};
        __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4636, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
        PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_xx};
        __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4636, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      {
        __pyx_t_19 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4636, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        if (__pyx_t_18) {
          __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_18); __pyx_t_18 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_13);
        PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_8, __pyx_t_13);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_8, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_8, __pyx_t_6);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_8, __pyx_v_xx);
        __pyx_t_13 = 0;
        __pyx_t_6 = 0;
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_19, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4636, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_xx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_19, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_t_19, __pyx_t_9) < 0)) __PYX_ERR(0, 4636, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4637:     for x in self.city_list:
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4637, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
    __pyx_t_5 = __pyx_t_7; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4637, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4637, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4637, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4637, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4637, __pyx_L1_error)
        #else
        __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4637, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
      }
    } else {
      __pyx_t_7 = __pyx_t_11(__pyx_t_5);
      if (unlikely(!__pyx_t_7)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4637, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_7);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4638:       for xx in x.district_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4638, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_9 = __pyx_t_7; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
      __pyx_t_17 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4638, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_17 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4638, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_17)) {
        if (likely(PyList_CheckExact(__pyx_t_9))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4638, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4638, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4638, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4638, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_17(__pyx_t_9);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4638, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4639:         private_demand_constraint = x.find_node_demand(contract_list, search_type, xx)
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4639, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_3 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_19)) {
        PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4639, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_7);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
        PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4639, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_7);
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4639, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (__pyx_t_3) {
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_3); __pyx_t_3 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_xx);
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4639, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4639, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_private_demand_constraint = __pyx_t_16;
+4640:         self.district_keys[xx].private_demand[x.key] = private_demand_constraint
      __pyx_t_7 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(PyObject_SetItem(__pyx_t_19, __pyx_t_6, __pyx_t_7) < 0)) __PYX_ERR(0, 4640, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4641:         self.district_keys[xx].private_delivery[x.key] = x.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,xx)
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_19 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_13 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[7] = {__pyx_t_13, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_3, __pyx_v_xx};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4641, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[7] = {__pyx_t_13, __pyx_t_19, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_3, __pyx_v_xx};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4641, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      {
        __pyx_t_18 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4641, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (__pyx_t_13) {
          __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_13); __pyx_t_13 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_19);
        PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_8, __pyx_t_19);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_8, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_8, __pyx_t_3);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_8, __pyx_v_xx);
        __pyx_t_19 = 0;
        __pyx_t_3 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_18, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4641, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_18, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_18, __pyx_t_7) < 0)) __PYX_ERR(0, 4641, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4642: 
 4643:     #initial capacity check on flow available for delivery (i.e., canal capacity at starting node)
 4644:     #MAIN DISTRIBUTION LOOP - within the canal range identified above, distribute the available flow to each node based on the canal capacity and the different demand magnitudes and priorities at each node
+4645:     for canal_loc in canal_range:
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_v_canal_range)) {
    __pyx_t_5 = __pyx_cur_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_cur_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4645, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4645, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4645, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4645, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_9); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4645, __pyx_L1_error)
        #else
        __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4645, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        #endif
      }
    } else {
      __pyx_t_9 = __pyx_t_11(__pyx_t_5);
      if (unlikely(!__pyx_t_9)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4645, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_9);
    }
    __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4646:       #first, find the fraction of each priority that can be diverted at this node, based on total canal demands and canal conveyance capacity
 4647:       # available_capacity_int = available_flow
 4648:       #for zz in type_list:
 4649:         #type_demands[zz] = 0.0
 4650:         #for type_loc in canal_range:
 4651:           #type_demands[zz] += canal.demand[zz][type_loc]
 4652: 
 4653:       #for zz in type_list:
 4654:         #find the fraction of each priority type that can be filled, based on canal capacity and downstream demands
 4655:         #if type_demands[zz] > 0.0:
 4656:           #type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
 4657:         #else:
 4658:           #type_fractions[zz] = 0.0
 4659:         #available_capacity_int -= type_demands[zz]*type_fractions[zz]
 4660:         #type_demands[zz] -= canal.demand[zz][canal_loc]
 4661: 
 4662:       #find the object at the current node
+4663:       x = self.canal_district[canal.name][canal_loc]
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_canal_loc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_x);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_x, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
+4664:       location_delivery = 0.0
    __pyx_v_location_delivery = 0.0;
 4665:       # turnout_available = 0.0
 4666:       # new_excess_flow = 0.0
+4667:       if x.is_Waterbank == 1:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_18 = __Pyx_PyInt_EqObjC(__pyx_t_7, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_18);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_18); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4667, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
    if (__pyx_t_1) {
/* … */
      goto __pyx_L35;
    }
 4668:         #for waterbanks, we calculate the demands of each waterbank partner individually
+4669:         for xx in x.participant_list:
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4669, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
        __pyx_t_7 = __pyx_t_18; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
        __pyx_t_17 = NULL;
      } else {
        __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4669, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4669, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      for (;;) {
        if (likely(!__pyx_t_17)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_18 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4669, __pyx_L1_error)
            #else
            __pyx_t_18 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4669, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            #endif
          } else {
            if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4669, __pyx_L1_error)
            #else
            __pyx_t_18 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4669, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            #endif
          }
        } else {
          __pyx_t_18 = __pyx_t_17(__pyx_t_7);
          if (unlikely(!__pyx_t_18)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 4669, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_18);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_18);
        __pyx_t_18 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4670:           num_members = self.district_keys_len[xx]
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4670, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4670, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4670, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_v_num_members = __pyx_t_8;
+4671:           for wb_member in self.district_keys[xx]:
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4671, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4671, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
          __pyx_t_9 = __pyx_t_18; __Pyx_INCREF(__pyx_t_9); __pyx_t_20 = 0;
          __pyx_t_21 = NULL;
        } else {
          __pyx_t_20 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4671, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_21 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4671, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        for (;;) {
          if (likely(!__pyx_t_21)) {
            if (likely(PyList_CheckExact(__pyx_t_9))) {
              if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_18 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_20); __Pyx_INCREF(__pyx_t_18); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4671, __pyx_L1_error)
              #else
              __pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4671, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              #endif
            } else {
              if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_20); __Pyx_INCREF(__pyx_t_18); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4671, __pyx_L1_error)
              #else
              __pyx_t_18 = PySequence_ITEM(__pyx_t_9, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4671, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              #endif
            }
          } else {
            __pyx_t_18 = __pyx_t_21(__pyx_t_9);
            if (unlikely(!__pyx_t_18)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4671, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_18);
          }
          __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_18);
          __pyx_t_18 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 4672:             #find waterbank partner demand (i.e., recharge capacity of their ownership share)
+4673:             demand_constraint = x.find_node_demand(contract_list, xx, num_members, search_type)
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4673, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_19 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
            __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_6);
            if (likely(__pyx_t_19)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
              __Pyx_INCREF(__pyx_t_19);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_6, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_contract_list, __pyx_v_xx, __pyx_t_3, __pyx_v_search_type};
            __pyx_t_18 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4673, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
            PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_contract_list, __pyx_v_xx, __pyx_t_3, __pyx_v_search_type};
            __pyx_t_18 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4673, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4673, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_19) {
              __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_19); __pyx_t_19 = NULL;
            }
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_v_contract_list);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_v_xx);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_search_type);
            __pyx_t_3 = 0;
            __pyx_t_18 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4673, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4673, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_v_demand_constraint = __pyx_t_16;
 4674:             #find how much water is allocated to each priority demand based on the total space and turnout at this node
+4675:             current_storage = sum((x.storage[_] for _ in x.participant_list))
static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr *)__pyx_tp_new_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr(__pyx_ptype_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 4675, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_2generator, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_cy_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4675, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_2generator(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceDeclarations
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4675, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x)) { __Pyx_RaiseClosureNameError("x"); __PYX_ERR(0, 4675, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4675, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4675, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4675, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4675, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4675, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x)) { __Pyx_RaiseClosureNameError("x"); __PYX_ERR(0, 4675, __pyx_L1_error) }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x, __pyx_n_s_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4675, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_TraceReturn(__pyx_r, 0);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4675, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
          __pyx_t_18 = __pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_18); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4675, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4675, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_v_current_storage = __pyx_t_16;
/* … */
struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_1_genexpr {
  PyObject_HEAD
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *__pyx_outer_scope;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};

 4676:             # current_storage = 0.0
 4677:             # for yy in x.participant_list:
 4678:             #   current_storage += x.storage[yy]
+4679:             canal_fractions = canal.find_priority_fractions(x.tot_storage - current_storage, type_fractions, type_list, canal_loc, flow_dir)
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_find_priority_fractions); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4679, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_tot_storage); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4679, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_3 = PyFloat_FromDouble(__pyx_v_current_storage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4679, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_19 = PyNumber_Subtract(__pyx_t_13, __pyx_t_3); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4679, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4679, __pyx_L1_error) }
          __pyx_t_3 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
            __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
            if (likely(__pyx_t_3)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_3);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_18, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_t_19, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_v_canal_loc, __pyx_v_flow_dir};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4679, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[6] = {__pyx_t_3, __pyx_t_19, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_v_canal_loc, __pyx_v_flow_dir};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4679, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          } else
          #endif
          {
            __pyx_t_13 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4679, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (__pyx_t_3) {
              __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_3); __pyx_t_3 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_19);
            PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_19);
            __Pyx_INCREF(__pyx_v_type_fractions);
            __Pyx_GIVEREF(__pyx_v_type_fractions);
            PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_v_type_fractions);
            __Pyx_INCREF(__pyx_v_type_list);
            __Pyx_GIVEREF(__pyx_v_type_list);
            PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_v_type_list);
            __Pyx_INCREF(__pyx_v_canal_loc);
            __Pyx_GIVEREF(__pyx_v_canal_loc);
            PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_canal_loc);
            __Pyx_INCREF(__pyx_v_flow_dir);
            __Pyx_GIVEREF(__pyx_v_flow_dir);
            PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_8, __pyx_v_flow_dir);
            __pyx_t_19 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_13, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4679, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4679, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
 4680:             #does this partner want to bank water?
 4681:             #find if banking partner wants to bank water
+4682:             deliveries = wb_member.set_request_constraints(demand_constraint, search_type, contract_list, x.banked[xx], x.bank_cap[xx], dowy, wateryear)
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_13 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_banked); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_xx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_bank_cap); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          __pyx_t_19 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_23 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_24 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
            __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_18);
            if (likely(__pyx_t_24)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_24);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_18, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_3, __pyx_t_22, __pyx_t_19, __pyx_t_23};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4682, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_t_13, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_3, __pyx_t_22, __pyx_t_19, __pyx_t_23};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4682, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          } else
          #endif
          {
            __pyx_t_25 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4682, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            if (__pyx_t_24) {
              __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_24); __pyx_t_24 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_13);
            PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_8, __pyx_t_13);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_8, __pyx_v_search_type);
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_8, __pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_8, __pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_8, __pyx_t_22);
            __Pyx_GIVEREF(__pyx_t_19);
            PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_8, __pyx_t_19);
            __Pyx_GIVEREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_25, 6+__pyx_t_8, __pyx_t_23);
            __pyx_t_13 = 0;
            __pyx_t_3 = 0;
            __pyx_t_22 = 0;
            __pyx_t_19 = 0;
            __pyx_t_23 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_25, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4682, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          }
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4682, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_v_deliveries = __pyx_t_16;
 4683:               #flood deliveries to bank
 4684:               #deliveries = x.set_request_constraints(demand_constraint, search_type, contract_list)
 4685:             #what priority does their banked water have (can be both)
+4686:             priority_bank_space = x.find_priority_space(num_members, xx, search_type)
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4686, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4686, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_23 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
            __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_18);
            if (likely(__pyx_t_23)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_23);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_18, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[4] = {__pyx_t_23, __pyx_t_25, __pyx_v_xx, __pyx_v_search_type};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4686, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[4] = {__pyx_t_23, __pyx_t_25, __pyx_v_xx, __pyx_v_search_type};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4686, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          } else
          #endif
          {
            __pyx_t_19 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4686, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            if (__pyx_t_23) {
              __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_23); __pyx_t_23 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_25);
            PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_8, __pyx_t_25);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_8, __pyx_v_xx);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_8, __pyx_v_search_type);
            __pyx_t_25 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_19, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4686, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          }
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4686, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_v_priority_bank_space = __pyx_t_16;
+4687:             priorities = x.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal, canal.name, wb_member.contract_list)
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_19 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __pyx_t_25 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_23 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_13 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
            __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_18);
            if (likely(__pyx_t_13)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_13);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_18, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[10] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_19, __pyx_t_25, __pyx_t_23, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_t_22, __pyx_t_3};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 9+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4687, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
            PyObject *__pyx_temp[10] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_19, __pyx_t_25, __pyx_t_23, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_t_22, __pyx_t_3};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 9+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4687, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_24 = PyTuple_New(9+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4687, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            if (__pyx_t_13) {
              __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_13); __pyx_t_13 = NULL;
            }
            __Pyx_INCREF(__pyx_v_priority_list);
            __Pyx_GIVEREF(__pyx_v_priority_list);
            PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_v_priority_list);
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_t_19);
            PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_t_19);
            __Pyx_GIVEREF(__pyx_t_25);
            PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_t_25);
            __Pyx_GIVEREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_8, __pyx_t_23);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_8, __pyx_v_search_type);
            __Pyx_INCREF(__pyx_v_contract_canal);
            __Pyx_GIVEREF(__pyx_v_contract_canal);
            PyTuple_SET_ITEM(__pyx_t_24, 6+__pyx_t_8, __pyx_v_contract_canal);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_24, 7+__pyx_t_8, __pyx_t_22);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_24, 8+__pyx_t_8, __pyx_t_3);
            __pyx_t_19 = 0;
            __pyx_t_25 = 0;
            __pyx_t_23 = 0;
            __pyx_t_22 = 0;
            __pyx_t_3 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_24, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4687, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          }
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4687, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
 4688: 			#need to adjust the water request to account for the banking partner share of the turnout
+4689:             priority_turnout_adjusted = {}
          __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4689, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
+4690:             for zz in type_list:
          if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4690, __pyx_L1_error) }
          __pyx_t_6 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_6); __pyx_t_26 = 0;
          for (;;) {
            if (__pyx_t_26 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_18 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_26); __Pyx_INCREF(__pyx_t_18); __pyx_t_26++; if (unlikely(0 < 0)) __PYX_ERR(0, 4690, __pyx_L1_error)
            #else
            __pyx_t_18 = PySequence_ITEM(__pyx_t_6, __pyx_t_26); __pyx_t_26++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4690, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            #endif
            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_18);
            __Pyx_GIVEREF(__pyx_t_18);
            __pyx_t_18 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+4691:               priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
            if (unlikely(__pyx_v_priorities == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 4691, __pyx_L1_error)
            }
            __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_canal_loc); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = PyNumber_Multiply(__pyx_t_18, __pyx_t_24); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_3) < 0)) __PYX_ERR(0, 4691, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 4692: 	        #deliver water to the waterbank
+4693:             actual_deliveries = x.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,xx)
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4693, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4693, __pyx_L1_error) }
          __pyx_t_24 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_24)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_24);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[5] = {__pyx_t_24, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_xx};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4693, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_GOTREF(__pyx_t_6);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[5] = {__pyx_t_24, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_xx};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4693, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_GOTREF(__pyx_t_6);
          } else
          #endif
          {
            __pyx_t_18 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4693, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            if (__pyx_t_24) {
              __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_24); __pyx_t_24 = NULL;
            }
            __Pyx_INCREF(__pyx_v_priority_turnout_adjusted);
            __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted);
            PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted);
            __Pyx_INCREF(__pyx_v_canal_fractions);
            __Pyx_GIVEREF(__pyx_v_canal_fractions);
            PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_8, __pyx_v_canal_fractions);
            __Pyx_INCREF(__pyx_v_type_list);
            __Pyx_GIVEREF(__pyx_v_type_list);
            PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_8, __pyx_v_type_list);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_8, __pyx_v_xx);
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_18, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4693, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4693, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_v_actual_deliveries = __pyx_t_16;
 4694:             #keep track of total demands at this node
+4695:             location_delivery += actual_deliveries
          __pyx_v_location_delivery = (__pyx_v_location_delivery + __pyx_v_actual_deliveries);
 4696:             #adjust accounts for overall contracts and invididual districts
+4697:             delivery_by_contract = wb_member.adjust_accounts(0.0, actual_deliveries,contract_list, search_type, wateryear, x.key)
          __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4697, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_18 = PyFloat_FromDouble(__pyx_v_actual_deliveries); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4697, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4697, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4697, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_23 = NULL;
          __pyx_t_8 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_3))) {
            __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_3);
            if (likely(__pyx_t_23)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
              __Pyx_INCREF(__pyx_t_23);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_3, function);
              __pyx_t_8 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[7] = {__pyx_t_23, __pyx_float_0_0, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_24, __pyx_t_22};
            __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4697, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_3)) {
            PyObject *__pyx_temp[7] = {__pyx_t_23, __pyx_float_0_0, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_24, __pyx_t_22};
            __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_3, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4697, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          } else
          #endif
          {
            __pyx_t_25 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4697, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            if (__pyx_t_23) {
              __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_23); __pyx_t_23 = NULL;
            }
            __Pyx_INCREF(__pyx_float_0_0);
            __Pyx_GIVEREF(__pyx_float_0_0);
            PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_8, __pyx_float_0_0);
            __Pyx_GIVEREF(__pyx_t_18);
            PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_8, __pyx_t_18);
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_8, __pyx_v_contract_list);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_8, __pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_t_24);
            PyTuple_SET_ITEM(__pyx_t_25, 4+__pyx_t_8, __pyx_t_24);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_25, 5+__pyx_t_8, __pyx_t_22);
            __pyx_t_18 = 0;
            __pyx_t_24 = 0;
            __pyx_t_22 = 0;
            __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_25, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4697, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (!(likely(PyDict_CheckExact(__pyx_t_6))||((__pyx_t_6) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_6)->tp_name), 0))) __PYX_ERR(0, 4697, __pyx_L1_error)
          __Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_6));
          __pyx_t_6 = 0;
 4698: 
+4699:             for y in delivery_by_contract:
          __pyx_t_26 = 0;
          if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
            __PYX_ERR(0, 4699, __pyx_L1_error)
          }
          __pyx_t_3 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_27), (&__pyx_t_8)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4699, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_XDECREF(__pyx_t_6);
          __pyx_t_6 = __pyx_t_3;
          __pyx_t_3 = 0;
          while (1) {
            __pyx_t_28 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_27, &__pyx_t_26, &__pyx_t_3, NULL, NULL, __pyx_t_8);
            if (unlikely(__pyx_t_28 == 0)) break;
            if (unlikely(__pyx_t_28 == -1)) __PYX_ERR(0, 4699, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_3);
            __pyx_t_3 = 0;
 4700:               #update the accounting for deliveries made by each contract (overall contract accounting - not ind. district)
 4701:               # contract_object = self.contract_keys[y]
+4702:               self.contract_keys[y].adjust_accounts(delivery_by_contract[y], search_type, wateryear)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4702, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4702, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4702, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
              __PYX_ERR(0, 4702, __pyx_L1_error)
            }
            __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4702, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4702, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_18 = NULL;
            __pyx_t_28 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_18)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_28 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_22, __pyx_v_search_type, __pyx_t_24};
              __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4702, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_22, __pyx_v_search_type, __pyx_t_24};
              __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4702, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            } else
            #endif
            {
              __pyx_t_23 = PyTuple_New(3+__pyx_t_28); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4702, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_18); __pyx_t_18 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_28, __pyx_t_22);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_28, __pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_t_24);
              PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_28, __pyx_t_24);
              __pyx_t_22 = 0;
              __pyx_t_24 = 0;
              __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_23, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4702, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          }
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 4703: 
 4704:         #find new banking demands
+4705:         self.find_node_demand_bank(x, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_bank); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4705, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4705, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4705, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4705, __pyx_L1_error) }
      __pyx_t_25 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_25)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_25);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[11] = {__pyx_t_25, __pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_6, __pyx_t_3, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4705, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[11] = {__pyx_t_25, __pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_6, __pyx_t_3, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4705, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(10+__pyx_t_8); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4705, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_25) {
          __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_25); __pyx_t_25 = NULL;
        }
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_x);
        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_x);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_8, __pyx_cur_scope->__pyx_v_x);
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_8, __pyx_cur_scope->__pyx_v_canal);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_8, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_23, 5+__pyx_t_8, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_23, 6+__pyx_t_8, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_23, 7+__pyx_t_8, __pyx_t_3);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_23, 8+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_23, 9+__pyx_t_8, __pyx_v_type_list);
        __pyx_t_6 = 0;
        __pyx_t_3 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_23, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4705, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4706:         current_storage = sum((x.storage[_] for _ in x.participant_list))
static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_3genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr *)__pyx_tp_new_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr(__pyx_ptype_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 4706, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_5generator1, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_cy_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4706, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_5generator1(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceDeclarations
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4706, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x)) { __Pyx_RaiseClosureNameError("x"); __PYX_ERR(0, 4706, __pyx_L1_error) }
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_3 = 0;
    __pyx_t_4 = NULL;
  } else {
    __pyx_t_3 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4706, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_4)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_3 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4706, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_3 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_3); __Pyx_INCREF(__pyx_t_1); __pyx_t_3++; if (unlikely(0 < 0)) __PYX_ERR(0, 4706, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_3); __pyx_t_3++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_4(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4706, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_1);
    __pyx_t_1 = 0;
    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x)) { __Pyx_RaiseClosureNameError("x"); __PYX_ERR(0, 4706, __pyx_L1_error) }
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_x, __pyx_n_s_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_5;
    __pyx_t_5 = 0;
    __Pyx_XGIVEREF(__pyx_t_2);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_3;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_4;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_TraceReturn(__pyx_r, 0);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_2);
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_4 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4706, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value); /* proto */
/* … */
      __pyx_t_7 = __pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_3genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4706, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4706, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_v_current_storage = __pyx_t_16;
/* … */
struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_2_genexpr {
  PyObject_HEAD
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *__pyx_outer_scope;
  PyObject *__pyx_v__;
  PyObject *__pyx_t_0;
  Py_ssize_t __pyx_t_1;
  PyObject *(*__pyx_t_2)(PyObject *);
};

 4707:         # current_storage = 0.0
 4708:         # for xx in x.participant_list:
 4709:         #   current_storage += x.storage[xx]
 4710: 
+4711:         canal.find_turnout_adjustment(x.tot_storage - current_storage, flow_dir, canal_loc, type_list)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_tot_storage); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_current_storage); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_6 = PyNumber_Subtract(__pyx_t_23, __pyx_t_3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4711, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4711, __pyx_L1_error) }
      __pyx_t_3 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_6, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_t_6, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_3) {
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_3); __pyx_t_3 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_8, __pyx_t_6);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_8, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_8, __pyx_v_type_list);
        __pyx_t_6 = 0;
        __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_23, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4711, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 4712: 
+4713:       elif x.is_District == 1:
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_is_District); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_9, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4713, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_1) {
/* … */
      goto __pyx_L35;
    }
 4714:         #find demand at the node
 4715:         #partial delivery is used if the district recieves less than full daily demand due to projected contract allocations being lower than expected remaining annual demand
 4716:         #find district demand at the node
+4717:         if search_type == "recovery":
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4717, __pyx_L1_error)
      __pyx_t_2 = (__pyx_t_1 != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L44;
      }
+4718:           demand_constraint = x.find_node_output()
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_23 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_23)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_23);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
          }
        }
        __pyx_t_7 = (__pyx_t_23) ? __Pyx_PyObject_CallOneArg(__pyx_t_9, __pyx_t_23) : __Pyx_PyObject_CallNoArg(__pyx_t_9);
        __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
        if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4718, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4718, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_demand_constraint = __pyx_t_16;
 4719:         else:
+4720:           demand_constraint = x.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
      /*else*/ {
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_23 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_3 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_9);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_9, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_23, __pyx_t_6};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4720, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
          PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_23, __pyx_t_6};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4720, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        } else
        #endif
        {
          __pyx_t_25 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4720, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_8, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_8, __pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_8, __pyx_t_23);
          __Pyx_GIVEREF(__pyx_t_6);
          PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_8, __pyx_t_6);
          __pyx_t_23 = 0;
          __pyx_t_6 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_25, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4720, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4720, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_v_demand_constraint = __pyx_t_16;
      }
      __pyx_L44:;
 4721:         #update the fractions based on turnout capacity/use capacity at the current node
 4722: 
+4723:         canal_fractions = canal.find_priority_fractions(demand_constraint, type_fractions, type_list, canal_loc, flow_dir)
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_find_priority_fractions); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4723, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_25 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4723, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4723, __pyx_L1_error) }
      __pyx_t_6 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_25, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_v_canal_loc, __pyx_v_flow_dir};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4723, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[6] = {__pyx_t_6, __pyx_t_25, __pyx_v_type_fractions, __pyx_v_type_list, __pyx_v_canal_loc, __pyx_v_flow_dir};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4723, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4723, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_8, __pyx_t_25);
        __Pyx_INCREF(__pyx_v_type_fractions);
        __Pyx_GIVEREF(__pyx_v_type_fractions);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_8, __pyx_v_type_fractions);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_8, __pyx_v_type_list);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_8, __pyx_v_flow_dir);
        __pyx_t_25 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_23, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4723, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4723, __pyx_L1_error)
      __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_7));
      __pyx_t_7 = 0;
 4724:         #if a district is an in-leiu bank, partners can send water to this district for banking recharge
+4725:         if (x.in_leiu_banking and search_type == "banking") or (x.in_leiu_banking and search_type == "recovery"):
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (!__pyx_t_1) {
        goto __pyx_L47_next_or;
      } else {
      }
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __pyx_t_29 = (__pyx_t_1 != 0);
      if (!__pyx_t_29) {
      } else {
        __pyx_t_2 = __pyx_t_29;
        goto __pyx_L46_bool_binop_done;
      }
      __pyx_L47_next_or:;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_29 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_29) {
      } else {
        __pyx_t_2 = __pyx_t_29;
        goto __pyx_L46_bool_binop_done;
      }
      __pyx_t_29 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_29 < 0)) __PYX_ERR(0, 4725, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_29 != 0);
      __pyx_t_2 = __pyx_t_1;
      __pyx_L46_bool_binop_done:;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L45;
      }
+4726:           for xx in x.participant_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_9 = __pyx_t_7; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_9 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_17 = Py_TYPE(__pyx_t_9)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4726, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_9))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4726, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4726, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_9)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4726, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4726, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_17(__pyx_t_9);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4726, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4727:             num_members = self.district_keys_len[xx]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4727, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4727, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_23); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4727, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_v_num_members = __pyx_t_8;
+4728:             for wb_member in self.district_keys[xx]:
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
            __pyx_t_23 = __pyx_t_7; __Pyx_INCREF(__pyx_t_23); __pyx_t_20 = 0;
            __pyx_t_21 = NULL;
          } else {
            __pyx_t_20 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4728, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_21 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4728, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          for (;;) {
            if (likely(!__pyx_t_21)) {
              if (likely(PyList_CheckExact(__pyx_t_23))) {
                if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_20); __Pyx_INCREF(__pyx_t_7); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4728, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              } else {
                if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_20); __Pyx_INCREF(__pyx_t_7); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4728, __pyx_L1_error)
                #else
                __pyx_t_7 = PySequence_ITEM(__pyx_t_23, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4728, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_7);
                #endif
              }
            } else {
              __pyx_t_7 = __pyx_t_21(__pyx_t_23);
              if (unlikely(!__pyx_t_7)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4728, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_7);
            }
            __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_7);
            __pyx_t_7 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 4729:               #find if the banking partner wants to bank
 4730: 
+4731:               deliveries = wb_member.set_request_constraints(demand_constraint, search_type, contract_list, x.inleiubanked[xx], x.inleiucap[xx], dowy, wateryear)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_6 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_xx); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_19 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_19)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_19);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[8] = {__pyx_t_19, __pyx_t_6, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_24, __pyx_t_22, __pyx_t_3, __pyx_t_18};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4731, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[8] = {__pyx_t_19, __pyx_t_6, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_24, __pyx_t_22, __pyx_t_3, __pyx_t_18};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4731, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            } else
            #endif
            {
              __pyx_t_13 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4731, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              if (__pyx_t_19) {
                __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_19); __pyx_t_19 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_6);
              PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_6);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_v_search_type);
              __Pyx_INCREF(__pyx_v_contract_list);
              __Pyx_GIVEREF(__pyx_v_contract_list);
              PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_v_contract_list);
              __Pyx_GIVEREF(__pyx_t_24);
              PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_t_24);
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_8, __pyx_t_22);
              __Pyx_GIVEREF(__pyx_t_3);
              PyTuple_SET_ITEM(__pyx_t_13, 5+__pyx_t_8, __pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_18);
              PyTuple_SET_ITEM(__pyx_t_13, 6+__pyx_t_8, __pyx_t_18);
              __pyx_t_6 = 0;
              __pyx_t_24 = 0;
              __pyx_t_22 = 0;
              __pyx_t_3 = 0;
              __pyx_t_18 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_13, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4731, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4731, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_v_deliveries = __pyx_t_16;
 4732:               #determine the priorities of the banking
+4733:               priority_bank_space = x.find_leiu_priority_space(demand_constraint, num_members, xx, toggle_district_recharge, search_type)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4733, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_13 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4733, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4733, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4733, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_22 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_22)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_22);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[6] = {__pyx_t_22, __pyx_t_13, __pyx_t_18, __pyx_v_xx, __pyx_t_3, __pyx_v_search_type};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[6] = {__pyx_t_22, __pyx_t_13, __pyx_t_18, __pyx_v_xx, __pyx_t_3, __pyx_v_search_type};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 5+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            } else
            #endif
            {
              __pyx_t_24 = PyTuple_New(5+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4733, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              if (__pyx_t_22) {
                __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_22); __pyx_t_22 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_13);
              PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_t_13);
              __Pyx_GIVEREF(__pyx_t_18);
              PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_t_18);
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_v_xx);
              __Pyx_GIVEREF(__pyx_t_3);
              PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_t_3);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_8, __pyx_v_search_type);
              __pyx_t_13 = 0;
              __pyx_t_18 = 0;
              __pyx_t_3 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4733, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4733, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_v_priority_bank_space = __pyx_t_16;
+4734:               priorities = wb_member.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4734, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_24 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4734, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_3 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4734, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_18 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4734, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_13 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_13)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_13);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_24, __pyx_t_3, __pyx_t_18, __pyx_v_search_type, __pyx_v_contract_canal};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4734, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_24, __pyx_t_3, __pyx_t_18, __pyx_v_search_type, __pyx_v_contract_canal};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4734, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            } else
            #endif
            {
              __pyx_t_22 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4734, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              if (__pyx_t_13) {
                __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_13); __pyx_t_13 = NULL;
              }
              __Pyx_INCREF(__pyx_v_priority_list);
              __Pyx_GIVEREF(__pyx_v_priority_list);
              PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_v_priority_list);
              __Pyx_INCREF(__pyx_v_contract_list);
              __Pyx_GIVEREF(__pyx_v_contract_list);
              PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_contract_list);
              __Pyx_GIVEREF(__pyx_t_24);
              PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_t_24);
              __Pyx_GIVEREF(__pyx_t_3);
              PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_18);
              PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_18);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_v_search_type);
              __Pyx_INCREF(__pyx_v_contract_canal);
              __Pyx_GIVEREF(__pyx_v_contract_canal);
              PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_v_contract_canal);
              __pyx_t_24 = 0;
              __pyx_t_3 = 0;
              __pyx_t_18 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4734, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4734, __pyx_L1_error)
            __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_7));
            __pyx_t_7 = 0;
 4735: 
 4736:               #need to adjust the water request to account for the banking partner share of the turnout
+4737:               priority_turnout_adjusted = {}
            __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4737, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_7));
            __pyx_t_7 = 0;
+4738:               for zz in type_list:
            if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4738, __pyx_L1_error) }
            __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_27 = 0;
            for (;;) {
              if (__pyx_t_27 >= PyList_GET_SIZE(__pyx_t_7)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_25 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_27); __Pyx_INCREF(__pyx_t_25); __pyx_t_27++; if (unlikely(0 < 0)) __PYX_ERR(0, 4738, __pyx_L1_error)
              #else
              __pyx_t_25 = PySequence_ITEM(__pyx_t_7, __pyx_t_27); __pyx_t_27++; if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4738, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              #endif
              __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
              __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_25);
              __Pyx_GIVEREF(__pyx_t_25);
              __pyx_t_25 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4739:                 priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
              if (unlikely(__pyx_v_priorities == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(0, 4739, __pyx_L1_error)
              }
              __pyx_t_25 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_canal_loc); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __pyx_t_18 = PyNumber_Multiply(__pyx_t_25, __pyx_t_22); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_18) < 0)) __PYX_ERR(0, 4739, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
 4740:               #make deliveries, adjust demands & recharge availability
+4741:               direct_deliveries, recharge_deliveries, undelivered = x.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,search_type, toggle_district_recharge,xx,wateryear)
            __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4741, __pyx_L1_error) }
            __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_3 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
              __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
              if (likely(__pyx_t_3)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
                __Pyx_INCREF(__pyx_t_3);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_18, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_18)) {
              PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_22, __pyx_v_xx, __pyx_t_25};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
              PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_22, __pyx_v_xx, __pyx_t_25};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            } else
            #endif
            {
              __pyx_t_24 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              if (__pyx_t_3) {
                __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_3); __pyx_t_3 = NULL;
              }
              __Pyx_INCREF(__pyx_v_priority_turnout_adjusted);
              __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted);
              PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted);
              __Pyx_INCREF(__pyx_v_canal_fractions);
              __Pyx_GIVEREF(__pyx_v_canal_fractions);
              PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_v_canal_fractions);
              __Pyx_INCREF(__pyx_v_type_list);
              __Pyx_GIVEREF(__pyx_v_type_list);
              PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_v_type_list);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_8, __pyx_t_22);
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_8, __pyx_v_xx);
              __Pyx_GIVEREF(__pyx_t_25);
              PyTuple_SET_ITEM(__pyx_t_24, 6+__pyx_t_8, __pyx_t_25);
              __pyx_t_22 = 0;
              __pyx_t_25 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            }
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
              PyObject* sequence = __pyx_t_7;
              Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
              if (unlikely(size != 3)) {
                if (size > 3) __Pyx_RaiseTooManyValuesError(3);
                else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                __PYX_ERR(0, 4741, __pyx_L1_error)
              }
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              if (likely(PyTuple_CheckExact(sequence))) {
                __pyx_t_18 = PyTuple_GET_ITEM(sequence, 0); 
                __pyx_t_24 = PyTuple_GET_ITEM(sequence, 1); 
                __pyx_t_25 = PyTuple_GET_ITEM(sequence, 2); 
              } else {
                __pyx_t_18 = PyList_GET_ITEM(sequence, 0); 
                __pyx_t_24 = PyList_GET_ITEM(sequence, 1); 
                __pyx_t_25 = PyList_GET_ITEM(sequence, 2); 
              }
              __Pyx_INCREF(__pyx_t_18);
              __Pyx_INCREF(__pyx_t_24);
              __Pyx_INCREF(__pyx_t_25);
              #else
              __pyx_t_18 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              __pyx_t_24 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __pyx_t_25 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              #endif
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            } else {
              Py_ssize_t index = -1;
              __pyx_t_22 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4741, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              __pyx_t_10 = Py_TYPE(__pyx_t_22)->tp_iternext;
              index = 0; __pyx_t_18 = __pyx_t_10(__pyx_t_22); if (unlikely(!__pyx_t_18)) goto __pyx_L56_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_18);
              index = 1; __pyx_t_24 = __pyx_t_10(__pyx_t_22); if (unlikely(!__pyx_t_24)) goto __pyx_L56_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_24);
              index = 2; __pyx_t_25 = __pyx_t_10(__pyx_t_22); if (unlikely(!__pyx_t_25)) goto __pyx_L56_unpacking_failed;
              __Pyx_GOTREF(__pyx_t_25);
              if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_22), 3) < 0) __PYX_ERR(0, 4741, __pyx_L1_error)
              __pyx_t_10 = NULL;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              goto __pyx_L57_unpacking_done;
              __pyx_L56_unpacking_failed:;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __pyx_t_10 = NULL;
              if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
              __PYX_ERR(0, 4741, __pyx_L1_error)
              __pyx_L57_unpacking_done:;
            }
            __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
            __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_24); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4741, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __pyx_v_direct_deliveries = __pyx_t_16;
            __pyx_v_recharge_deliveries = __pyx_t_15;
            __pyx_v_undelivered = __pyx_t_14;
+4742:               actual_deliveries = direct_deliveries + recharge_deliveries
            __pyx_v_actual_deliveries = (__pyx_v_direct_deliveries + __pyx_v_recharge_deliveries);
+4743:               location_delivery += actual_deliveries
            __pyx_v_location_delivery = (__pyx_v_location_delivery + __pyx_v_actual_deliveries);
 4744:               #adjust accounts for overall contracts and invididual districts
+4745:               delivery_by_contract = wb_member.adjust_accounts(direct_deliveries, recharge_deliveries,contract_list, search_type, wateryear, x.key)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_24 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_18 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_18);
            __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_13 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_13)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_13);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[7] = {__pyx_t_13, __pyx_t_24, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_22, __pyx_t_3};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4745, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[7] = {__pyx_t_13, __pyx_t_24, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_22, __pyx_t_3};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4745, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            } else
            #endif
            {
              __pyx_t_6 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4745, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_6);
              if (__pyx_t_13) {
                __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_13); __pyx_t_13 = NULL;
              }
              __Pyx_GIVEREF(__pyx_t_24);
              PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_24);
              __Pyx_GIVEREF(__pyx_t_18);
              PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_t_18);
              __Pyx_INCREF(__pyx_v_contract_list);
              __Pyx_GIVEREF(__pyx_v_contract_list);
              PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_contract_list);
              __Pyx_INCREF(__pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_v_search_type);
              PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_v_search_type);
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_t_22);
              __Pyx_GIVEREF(__pyx_t_3);
              PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_8, __pyx_t_3);
              __pyx_t_24 = 0;
              __pyx_t_18 = 0;
              __pyx_t_22 = 0;
              __pyx_t_3 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_6, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4745, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4745, __pyx_L1_error)
            __Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_7));
            __pyx_t_7 = 0;
+4746:               x.adjust_bank_accounts(xx, direct_deliveries, recharge_deliveries, wateryear)
            __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_adjust_bank_accounts); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4746, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __pyx_t_6 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4746, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_3 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4746, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4746, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_18 = NULL;
            __pyx_t_8 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
              __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_25);
              if (likely(__pyx_t_18)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
                __Pyx_INCREF(__pyx_t_18);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_25, function);
                __pyx_t_8 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_v_xx, __pyx_t_6, __pyx_t_3, __pyx_t_22};
              __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4746, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
              PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_v_xx, __pyx_t_6, __pyx_t_3, __pyx_t_22};
              __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4746, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
              __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            } else
            #endif
            {
              __pyx_t_24 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4746, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              if (__pyx_t_18) {
                __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_18); __pyx_t_18 = NULL;
              }
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_v_xx);
              __Pyx_GIVEREF(__pyx_t_6);
              PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_t_6);
              __Pyx_GIVEREF(__pyx_t_3);
              PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_t_3);
              __Pyx_GIVEREF(__pyx_t_22);
              PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_t_22);
              __pyx_t_6 = 0;
              __pyx_t_3 = 0;
              __pyx_t_22 = 0;
              __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4746, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4747:               for y in delivery_by_contract:
            __pyx_t_27 = 0;
            if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
              PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
              __PYX_ERR(0, 4747, __pyx_L1_error)
            }
            __pyx_t_25 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_26), (&__pyx_t_8)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4747, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_XDECREF(__pyx_t_7);
            __pyx_t_7 = __pyx_t_25;
            __pyx_t_25 = 0;
            while (1) {
              __pyx_t_28 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_26, &__pyx_t_27, &__pyx_t_25, NULL, NULL, __pyx_t_8);
              if (unlikely(__pyx_t_28 == 0)) break;
              if (unlikely(__pyx_t_28 == -1)) __PYX_ERR(0, 4747, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_25);
              __pyx_t_25 = 0;
+4748:                 self.contract_keys[y].adjust_accounts(delivery_by_contract[y], search_type, wateryear)
              __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4748, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4748, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_t_22, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4748, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
              if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
                PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                __PYX_ERR(0, 4748, __pyx_L1_error)
              }
              __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4748, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_22);
              __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4748, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_6 = NULL;
              __pyx_t_28 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_24))) {
                __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_24);
                if (likely(__pyx_t_6)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24);
                  __Pyx_INCREF(__pyx_t_6);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_24, function);
                  __pyx_t_28 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_24)) {
                PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_22, __pyx_v_search_type, __pyx_t_3};
                __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_24, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4748, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                __Pyx_GOTREF(__pyx_t_25);
                __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_24)) {
                PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_t_22, __pyx_v_search_type, __pyx_t_3};
                __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_24, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4748, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                __Pyx_GOTREF(__pyx_t_25);
                __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
              } else
              #endif
              {
                __pyx_t_18 = PyTuple_New(3+__pyx_t_28); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4748, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                if (__pyx_t_6) {
                  __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
                }
                __Pyx_GIVEREF(__pyx_t_22);
                PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_28, __pyx_t_22);
                __Pyx_INCREF(__pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_v_search_type);
                PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_28, __pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_t_3);
                PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_28, __pyx_t_3);
                __pyx_t_22 = 0;
                __pyx_t_3 = 0;
                __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_24, __pyx_t_18, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4748, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_25);
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
              }
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4749:         else:
 4750:           #find if district wants to purchase this type of flow
+4751:           deliveries =  x.set_request_constraints(demand_constraint, search_type, contract_list, 0.0, 999.0, dowy, wateryear)
      /*else*/ {
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_7 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4751, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_18 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
          __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_23);
          if (likely(__pyx_t_18)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_23, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_23)) {
          PyObject *__pyx_temp[8] = {__pyx_t_18, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_25, __pyx_t_24};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4751, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
          PyObject *__pyx_temp[8] = {__pyx_t_18, __pyx_t_7, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_t_25, __pyx_t_24};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4751, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        } else
        #endif
        {
          __pyx_t_3 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4751, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (__pyx_t_18) {
            __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_18); __pyx_t_18 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_7);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_float_0_0);
          __Pyx_GIVEREF(__pyx_float_0_0);
          PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_float_0_0);
          __Pyx_INCREF(__pyx_float_999_0);
          __Pyx_GIVEREF(__pyx_float_999_0);
          PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_float_999_0);
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_t_25);
          __Pyx_GIVEREF(__pyx_t_24);
          PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_8, __pyx_t_24);
          __pyx_t_7 = 0;
          __pyx_t_25 = 0;
          __pyx_t_24 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4751, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4751, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_v_deliveries = __pyx_t_14;
 4752:           #find what priority district has for flow purchases
+4753:           priorities = x.set_demand_priority(priority_list, contract_list, demand_constraint, deliveries, demand_constraint, search_type, contract_canal)
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4753, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4753, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_24 = PyFloat_FromDouble(__pyx_v_deliveries); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4753, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_25 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4753, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_7 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_23);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_23, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_23)) {
          PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_3, __pyx_t_24, __pyx_t_25, __pyx_v_search_type, __pyx_v_contract_canal};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4753, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
          PyObject *__pyx_temp[8] = {__pyx_t_7, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_t_3, __pyx_t_24, __pyx_t_25, __pyx_v_search_type, __pyx_v_contract_canal};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4753, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4753, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_INCREF(__pyx_v_priority_list);
          __Pyx_GIVEREF(__pyx_v_priority_list);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_8, __pyx_v_priority_list);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_8, __pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_8, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_24);
          PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_8, __pyx_t_24);
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_8, __pyx_t_25);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_8, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_18, 6+__pyx_t_8, __pyx_v_contract_canal);
          __pyx_t_3 = 0;
          __pyx_t_24 = 0;
          __pyx_t_25 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4753, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_9))||((__pyx_t_9) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_9)->tp_name), 0))) __PYX_ERR(0, 4753, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_9));
        __pyx_t_9 = 0;
+4754:           priority_turnout_adjusted = {}
        __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_9));
        __pyx_t_9 = 0;
 4755:           #need to adjust the water request to account for the banking partner share of the turnout
+4756:           for zz in type_list:
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4756, __pyx_L1_error) }
        __pyx_t_9 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_12 = 0;
        for (;;) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_9)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_12); __Pyx_INCREF(__pyx_t_23); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4756, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_9, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4756, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
          __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
          __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_23);
          __Pyx_GIVEREF(__pyx_t_23);
          __pyx_t_23 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4757:             priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][canal_loc]
          if (unlikely(__pyx_v_priorities == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 4757, __pyx_L1_error)
          }
          __pyx_t_23 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_25 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_25, __pyx_v_canal_loc); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __pyx_t_25 = PyNumber_Multiply(__pyx_t_23, __pyx_t_18); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_cur_scope->__pyx_v_zz, __pyx_t_25) < 0)) __PYX_ERR(0, 4757, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
 4758:           #make deliveries, adjust demands & recharge availability
+4759:           direct_deliveries, recharge_deliveries, undelivered = x.set_deliveries(priority_turnout_adjusted,canal_fractions,type_list,search_type,toggle_district_recharge,'none',wateryear)
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_set_deliveries); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4759, __pyx_L1_error) }
        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_23 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_24 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
          __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_25);
          if (likely(__pyx_t_24)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
            __Pyx_INCREF(__pyx_t_24);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_25, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_18, __pyx_n_u_none, __pyx_t_23};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_v_priority_turnout_adjusted, __pyx_v_canal_fractions, __pyx_v_type_list, __pyx_v_search_type, __pyx_t_18, __pyx_n_u_none, __pyx_t_23};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        {
          __pyx_t_3 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          if (__pyx_t_24) {
            __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_24); __pyx_t_24 = NULL;
          }
          __Pyx_INCREF(__pyx_v_priority_turnout_adjusted);
          __Pyx_GIVEREF(__pyx_v_priority_turnout_adjusted);
          PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_v_priority_turnout_adjusted);
          __Pyx_INCREF(__pyx_v_canal_fractions);
          __Pyx_GIVEREF(__pyx_v_canal_fractions);
          PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_v_canal_fractions);
          __Pyx_INCREF(__pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_v_type_list);
          PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_type_list);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_t_18);
          __Pyx_INCREF(__pyx_n_u_none);
          __Pyx_GIVEREF(__pyx_n_u_none);
          PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_n_u_none);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_8, __pyx_t_23);
          __pyx_t_18 = 0;
          __pyx_t_23 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_3, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        }
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_9))) || (PyList_CheckExact(__pyx_t_9))) {
          PyObject* sequence = __pyx_t_9;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 3)) {
            if (size > 3) __Pyx_RaiseTooManyValuesError(3);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 4759, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_25 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
            __pyx_t_23 = PyTuple_GET_ITEM(sequence, 2); 
          } else {
            __pyx_t_25 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
            __pyx_t_23 = PyList_GET_ITEM(sequence, 2); 
          }
          __Pyx_INCREF(__pyx_t_25);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_23);
          #else
          __pyx_t_25 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_23 = PySequence_ITEM(sequence, 2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_18 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4759, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_18)->tp_iternext;
          index = 0; __pyx_t_25 = __pyx_t_10(__pyx_t_18); if (unlikely(!__pyx_t_25)) goto __pyx_L62_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_25);
          index = 1; __pyx_t_3 = __pyx_t_10(__pyx_t_18); if (unlikely(!__pyx_t_3)) goto __pyx_L62_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_3);
          index = 2; __pyx_t_23 = __pyx_t_10(__pyx_t_18); if (unlikely(!__pyx_t_23)) goto __pyx_L62_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_23);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_18), 3) < 0) __PYX_ERR(0, 4759, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          goto __pyx_L63_unpacking_done;
          __pyx_L62_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 4759, __pyx_L1_error)
          __pyx_L63_unpacking_done:;
        }
        __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4759, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_v_direct_deliveries = __pyx_t_14;
        __pyx_v_recharge_deliveries = __pyx_t_15;
        __pyx_v_undelivered = __pyx_t_16;
 4760:           # actual_deliveries = direct_deliveries + recharge_deliveries
 4761:           #adjust accounts for overall contracts and invididual districts
+4762:           if x.has_private:
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4762, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4762, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_2) {
/* … */
        }
+4763:             for private_land in self.private_list:
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4763, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
            __pyx_t_23 = __pyx_t_9; __Pyx_INCREF(__pyx_t_23); __pyx_t_12 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_12 = -1; __pyx_t_23 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4763, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_17 = Py_TYPE(__pyx_t_23)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4763, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_23))) {
                if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyList_GET_ITEM(__pyx_t_23, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4763, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_23, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4763, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              } else {
                if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_23)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_23, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4763, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_23, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4763, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              }
            } else {
              __pyx_t_9 = __pyx_t_17(__pyx_t_23);
              if (unlikely(!__pyx_t_9)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4763, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_9);
            }
            __Pyx_XDECREF_SET(__pyx_v_private_land, __pyx_t_9);
            __pyx_t_9 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+4764:               for district_lands in private_land.district_list:
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_land, __pyx_n_s_district_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4764, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            if (likely(PyList_CheckExact(__pyx_t_9)) || PyTuple_CheckExact(__pyx_t_9)) {
              __pyx_t_3 = __pyx_t_9; __Pyx_INCREF(__pyx_t_3); __pyx_t_20 = 0;
              __pyx_t_21 = NULL;
            } else {
              __pyx_t_20 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_9); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4764, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_3);
              __pyx_t_21 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4764, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            for (;;) {
              if (likely(!__pyx_t_21)) {
                if (likely(PyList_CheckExact(__pyx_t_3))) {
                  if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_3)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_9 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_20); __Pyx_INCREF(__pyx_t_9); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4764, __pyx_L1_error)
                  #else
                  __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4764, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  #endif
                } else {
                  if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_20); __Pyx_INCREF(__pyx_t_9); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4764, __pyx_L1_error)
                  #else
                  __pyx_t_9 = PySequence_ITEM(__pyx_t_3, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4764, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  #endif
                }
              } else {
                __pyx_t_9 = __pyx_t_21(__pyx_t_3);
                if (unlikely(!__pyx_t_9)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 4764, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_9);
              }
              __Pyx_XDECREF_SET(__pyx_v_district_lands, __pyx_t_9);
              __pyx_t_9 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4765:                 if district_lands == x.key:
              __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4765, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_25 = PyObject_RichCompare(__pyx_v_district_lands, __pyx_t_9, Py_EQ); __Pyx_XGOTREF(__pyx_t_25); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4765, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_25); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4765, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
              if (__pyx_t_2) {
/* … */
              }
+4766:                   private_demand_constraint = private_land.find_node_demand(contract_list, search_type, district_lands)
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_land, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4766, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_18 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_18)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_18);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_lands};
                  __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4766, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_lands};
                  __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4766, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                } else
                #endif
                {
                  __pyx_t_24 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4766, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  if (__pyx_t_18) {
                    __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_18); __pyx_t_18 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_v_district_lands);
                  __Pyx_GIVEREF(__pyx_v_district_lands);
                  PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_v_district_lands);
                  __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_24, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4766, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4766, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
                __pyx_v_private_demand_constraint = __pyx_t_16;
+4767:                   private_delivery_constraint = private_land.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,district_lands)
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_land, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4767, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_24 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4767, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4767, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_7 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_7)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_7);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_t_24, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_18, __pyx_v_district_lands};
                  __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4767, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_t_24, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_18, __pyx_v_district_lands};
                  __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4767, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                } else
                #endif
                {
                  __pyx_t_22 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4767, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  if (__pyx_t_7) {
                    __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_7); __pyx_t_7 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_24);
                  PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_t_24);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_float_0_0);
                  __Pyx_GIVEREF(__pyx_float_0_0);
                  PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_float_0_0);
                  __Pyx_GIVEREF(__pyx_t_18);
                  PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_18);
                  __Pyx_INCREF(__pyx_v_district_lands);
                  __Pyx_GIVEREF(__pyx_v_district_lands);
                  PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_v_district_lands);
                  __pyx_t_24 = 0;
                  __pyx_t_18 = 0;
                  __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_22, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4767, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_25); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4767, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
                __pyx_v_private_delivery_constraint = __pyx_t_16;
+4768:                   delivery_to_private = min(private_demand_constraint, private_delivery_constraint,undelivered)
                __pyx_t_16 = __pyx_v_private_delivery_constraint;
                __pyx_t_15 = __pyx_v_undelivered;
                __pyx_t_14 = __pyx_v_private_demand_constraint;
                if (((__pyx_t_16 < __pyx_t_14) != 0)) {
                  __pyx_t_30 = __pyx_t_16;
                } else {
                  __pyx_t_30 = __pyx_t_14;
                }
                __pyx_t_14 = __pyx_t_30;
                if (((__pyx_t_15 < __pyx_t_14) != 0)) {
                  __pyx_t_30 = __pyx_t_15;
                } else {
                  __pyx_t_30 = __pyx_t_14;
                }
                __pyx_v_delivery_to_private = __pyx_t_30;
+4769:                   undelivered -= delivery_to_private
                __pyx_v_undelivered = (__pyx_v_undelivered - __pyx_v_delivery_to_private);
+4770:                   private_deliveries = private_land.adjust_account_district(delivery_to_private,contract_list,search_type,wateryear, district_lands, x.key)
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_private_land, __pyx_n_s_adjust_account_district); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4770, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_22 = PyFloat_FromDouble(__pyx_v_delivery_to_private); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4770, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4770, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4770, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_7 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_7)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_7);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_18, __pyx_v_district_lands, __pyx_t_24};
                  __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4770, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_7, __pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_18, __pyx_v_district_lands, __pyx_t_24};
                  __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4770, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                } else
                #endif
                {
                  __pyx_t_6 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4770, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  if (__pyx_t_7) {
                    __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_22);
                  PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_t_22);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_t_18);
                  PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_t_18);
                  __Pyx_INCREF(__pyx_v_district_lands);
                  __Pyx_GIVEREF(__pyx_v_district_lands);
                  PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_v_district_lands);
                  __Pyx_GIVEREF(__pyx_t_24);
                  PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_8, __pyx_t_24);
                  __pyx_t_22 = 0;
                  __pyx_t_18 = 0;
                  __pyx_t_24 = 0;
                  __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_6, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4770, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_25);
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (!(likely(PyDict_CheckExact(__pyx_t_25))||((__pyx_t_25) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_25)->tp_name), 0))) __PYX_ERR(0, 4770, __pyx_L1_error)
                __Pyx_XDECREF_SET(__pyx_v_private_deliveries, ((PyObject*)__pyx_t_25));
                __pyx_t_25 = 0;
 4771: 
+4772:                   for y in private_deliveries:
                __pyx_t_26 = 0;
                if (unlikely(__pyx_v_private_deliveries == Py_None)) {
                  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
                  __PYX_ERR(0, 4772, __pyx_L1_error)
                }
                __pyx_t_9 = __Pyx_dict_iterator(__pyx_v_private_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_27), (&__pyx_t_8)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4772, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __Pyx_XDECREF(__pyx_t_25);
                __pyx_t_25 = __pyx_t_9;
                __pyx_t_9 = 0;
                while (1) {
                  __pyx_t_28 = __Pyx_dict_iter_next(__pyx_t_25, __pyx_t_27, &__pyx_t_26, &__pyx_t_9, NULL, NULL, __pyx_t_8);
                  if (unlikely(__pyx_t_28 == 0)) break;
                  if (unlikely(__pyx_t_28 == -1)) __PYX_ERR(0, 4772, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_9);
                  __pyx_t_9 = 0;
+4773:                     self.contract_keys[y].adjust_accounts(private_deliveries[y], search_type, wateryear)
                  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4773, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_24 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_y); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4773, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_24, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4773, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  if (unlikely(__pyx_v_private_deliveries == Py_None)) {
                    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                    __PYX_ERR(0, 4773, __pyx_L1_error)
                  }
                  __pyx_t_24 = __Pyx_PyDict_GetItem(__pyx_v_private_deliveries, __pyx_v_y); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4773, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4773, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_22 = NULL;
                  __pyx_t_28 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
                    __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_6);
                    if (likely(__pyx_t_22)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
                      __Pyx_INCREF(__pyx_t_22);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_6, function);
                      __pyx_t_28 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_6)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_24, __pyx_v_search_type, __pyx_t_18};
                    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4773, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_22, __pyx_t_24, __pyx_v_search_type, __pyx_t_18};
                    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4773, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_7 = PyTuple_New(3+__pyx_t_28); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4773, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_7);
                    if (__pyx_t_22) {
                      __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_22); __pyx_t_22 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_24);
                    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_28, __pyx_t_24);
                    __Pyx_INCREF(__pyx_v_search_type);
                    __Pyx_GIVEREF(__pyx_v_search_type);
                    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_28, __pyx_v_search_type);
                    __Pyx_GIVEREF(__pyx_t_18);
                    PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_28, __pyx_t_18);
                    __pyx_t_24 = 0;
                    __pyx_t_18 = 0;
                    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4773, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4774:                     location_delivery += private_deliveries[y]
                  __pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4774, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  if (unlikely(__pyx_v_private_deliveries == Py_None)) {
                    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                    __PYX_ERR(0, 4774, __pyx_L1_error)
                  }
                  __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_private_deliveries, __pyx_v_y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4774, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4774, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4774, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                  __pyx_v_location_delivery = __pyx_t_30;
                }
                __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
 4775: 
+4776:             for city_pump in self.city_list:
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4776, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
            __pyx_t_3 = __pyx_t_23; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
            __pyx_t_17 = NULL;
          } else {
            __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4776, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __pyx_t_17 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4776, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          for (;;) {
            if (likely(!__pyx_t_17)) {
              if (likely(PyList_CheckExact(__pyx_t_3))) {
                if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_23 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_23); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4776, __pyx_L1_error)
                #else
                __pyx_t_23 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4776, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                #endif
              } else {
                if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_23); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4776, __pyx_L1_error)
                #else
                __pyx_t_23 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4776, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                #endif
              }
            } else {
              __pyx_t_23 = __pyx_t_17(__pyx_t_3);
              if (unlikely(!__pyx_t_23)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 4776, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_23);
            }
            __Pyx_XDECREF_SET(__pyx_v_city_pump, __pyx_t_23);
            __pyx_t_23 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4777:               for district_pump in city_pump.district_list:
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_district_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4777, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
              __pyx_t_25 = __pyx_t_23; __Pyx_INCREF(__pyx_t_25); __pyx_t_20 = 0;
              __pyx_t_21 = NULL;
            } else {
              __pyx_t_20 = -1; __pyx_t_25 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4777, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_25);
              __pyx_t_21 = Py_TYPE(__pyx_t_25)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 4777, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            for (;;) {
              if (likely(!__pyx_t_21)) {
                if (likely(PyList_CheckExact(__pyx_t_25))) {
                  if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_25)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_23 = PyList_GET_ITEM(__pyx_t_25, __pyx_t_20); __Pyx_INCREF(__pyx_t_23); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4777, __pyx_L1_error)
                  #else
                  __pyx_t_23 = PySequence_ITEM(__pyx_t_25, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4777, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  #endif
                } else {
                  if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_25)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_25, __pyx_t_20); __Pyx_INCREF(__pyx_t_23); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4777, __pyx_L1_error)
                  #else
                  __pyx_t_23 = PySequence_ITEM(__pyx_t_25, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4777, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  #endif
                }
              } else {
                __pyx_t_23 = __pyx_t_21(__pyx_t_25);
                if (unlikely(!__pyx_t_23)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 4777, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_23);
              }
              __Pyx_XDECREF_SET(__pyx_v_district_pump, __pyx_t_23);
              __pyx_t_23 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+4778:                 if district_pump == x.key:
              __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4778, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              __pyx_t_7 = PyObject_RichCompare(__pyx_v_district_pump, __pyx_t_23, Py_EQ); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4778, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4778, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
              if (__pyx_t_2) {
/* … */
              }
+4779:                   city_demand_constraint = city_pump.find_node_demand(contract_list, search_type, district_pump)
                __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4779, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_6 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
                  __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_23);
                  if (likely(__pyx_t_6)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
                    __Pyx_INCREF(__pyx_t_6);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_23, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_pump};
                  __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4779, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_6, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_district_pump};
                  __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 3+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4779, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                } else
                #endif
                {
                  __pyx_t_9 = PyTuple_New(3+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4779, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  if (__pyx_t_6) {
                    __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_v_district_pump);
                  __Pyx_GIVEREF(__pyx_v_district_pump);
                  PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_district_pump);
                  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4779, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                }
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4779, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_v_city_demand_constraint = __pyx_t_30;
+4780:                   city_delivery_constraint = city_pump.set_request_to_district(city_demand_constraint,search_type,contract_list,0.0,dowy,district_pump)
                __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4780, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_9 = PyFloat_FromDouble(__pyx_v_city_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4780, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4780, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_6);
                __pyx_t_18 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
                  __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_23);
                  if (likely(__pyx_t_18)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
                    __Pyx_INCREF(__pyx_t_18);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_23, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_district_pump};
                  __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4780, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_6, __pyx_v_district_pump};
                  __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4780, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                } else
                #endif
                {
                  __pyx_t_24 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4780, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  if (__pyx_t_18) {
                    __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_18); __pyx_t_18 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_9);
                  PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_t_9);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_float_0_0);
                  __Pyx_GIVEREF(__pyx_float_0_0);
                  PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_float_0_0);
                  __Pyx_GIVEREF(__pyx_t_6);
                  PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_8, __pyx_t_6);
                  __Pyx_INCREF(__pyx_v_district_pump);
                  __Pyx_GIVEREF(__pyx_v_district_pump);
                  PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_8, __pyx_v_district_pump);
                  __pyx_t_9 = 0;
                  __pyx_t_6 = 0;
                  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4780, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                }
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4780, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
                __pyx_v_city_delivery_constraint = __pyx_t_30;
+4781:                   delivery_to_private = min(city_demand_constraint, city_delivery_constraint,undelivered)
                __pyx_t_30 = __pyx_v_city_delivery_constraint;
                __pyx_t_16 = __pyx_v_undelivered;
                __pyx_t_15 = __pyx_v_city_demand_constraint;
                if (((__pyx_t_30 < __pyx_t_15) != 0)) {
                  __pyx_t_14 = __pyx_t_30;
                } else {
                  __pyx_t_14 = __pyx_t_15;
                }
                __pyx_t_15 = __pyx_t_14;
                if (((__pyx_t_16 < __pyx_t_15) != 0)) {
                  __pyx_t_14 = __pyx_t_16;
                } else {
                  __pyx_t_14 = __pyx_t_15;
                }
                __pyx_v_delivery_to_private = __pyx_t_14;
 4782: 
+4783:                   undelivered -= delivery_to_private
                __pyx_v_undelivered = (__pyx_v_undelivered - __pyx_v_delivery_to_private);
+4784:                   city_deliveries = city_pump.adjust_account_district(delivery_to_private,contract_list,search_type,wateryear, district_pump, x.key)
                __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_adjust_account_district); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4784, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_24 = PyFloat_FromDouble(__pyx_v_delivery_to_private); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4784, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4784, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_6);
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4784, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_18 = NULL;
                __pyx_t_8 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
                  __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_23);
                  if (likely(__pyx_t_18)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
                    __Pyx_INCREF(__pyx_t_18);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_23, function);
                    __pyx_t_8 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_24, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_6, __pyx_v_district_pump, __pyx_t_9};
                  __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4784, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
                  PyObject *__pyx_temp[7] = {__pyx_t_18, __pyx_t_24, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_6, __pyx_v_district_pump, __pyx_t_9};
                  __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4784, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                } else
                #endif
                {
                  __pyx_t_22 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4784, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  if (__pyx_t_18) {
                    __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_18); __pyx_t_18 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_24);
                  PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_t_24);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_t_6);
                  PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_t_6);
                  __Pyx_INCREF(__pyx_v_district_pump);
                  __Pyx_GIVEREF(__pyx_v_district_pump);
                  PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_v_district_pump);
                  __Pyx_GIVEREF(__pyx_t_9);
                  PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_t_9);
                  __pyx_t_24 = 0;
                  __pyx_t_6 = 0;
                  __pyx_t_9 = 0;
                  __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4784, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_7);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                }
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                if (!(likely(PyDict_CheckExact(__pyx_t_7))||((__pyx_t_7) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_7)->tp_name), 0))) __PYX_ERR(0, 4784, __pyx_L1_error)
                __Pyx_XDECREF_SET(__pyx_v_city_deliveries, ((PyObject*)__pyx_t_7));
                __pyx_t_7 = 0;
 4785: 
+4786:                   for y in city_deliveries:
                __pyx_t_27 = 0;
                if (unlikely(__pyx_v_city_deliveries == Py_None)) {
                  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
                  __PYX_ERR(0, 4786, __pyx_L1_error)
                }
                __pyx_t_23 = __Pyx_dict_iterator(__pyx_v_city_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_26), (&__pyx_t_8)); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4786, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __Pyx_XDECREF(__pyx_t_7);
                __pyx_t_7 = __pyx_t_23;
                __pyx_t_23 = 0;
                while (1) {
                  __pyx_t_28 = __Pyx_dict_iter_next(__pyx_t_7, __pyx_t_26, &__pyx_t_27, &__pyx_t_23, NULL, NULL, __pyx_t_8);
                  if (unlikely(__pyx_t_28 == 0)) break;
                  if (unlikely(__pyx_t_28 == -1)) __PYX_ERR(0, 4786, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_23);
                  __pyx_t_23 = 0;
+4787:                     self.contract_keys[y].adjust_accounts(city_deliveries[y], search_type, wateryear)
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4787, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_y); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4787, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4787, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  if (unlikely(__pyx_v_city_deliveries == Py_None)) {
                    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                    __PYX_ERR(0, 4787, __pyx_L1_error)
                  }
                  __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_city_deliveries, __pyx_v_y); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4787, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4787, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_6);
                  __pyx_t_24 = NULL;
                  __pyx_t_28 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_24)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_24);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_28 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_24, __pyx_t_9, __pyx_v_search_type, __pyx_t_6};
                    __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4787, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_GOTREF(__pyx_t_23);
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_24, __pyx_t_9, __pyx_v_search_type, __pyx_t_6};
                    __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4787, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_GOTREF(__pyx_t_23);
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_18 = PyTuple_New(3+__pyx_t_28); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4787, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_18);
                    if (__pyx_t_24) {
                      __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_24); __pyx_t_24 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_9);
                    PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_28, __pyx_t_9);
                    __Pyx_INCREF(__pyx_v_search_type);
                    __Pyx_GIVEREF(__pyx_v_search_type);
                    PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_28, __pyx_v_search_type);
                    __Pyx_GIVEREF(__pyx_t_6);
                    PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_28, __pyx_t_6);
                    __pyx_t_9 = 0;
                    __pyx_t_6 = 0;
                    __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_18, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4787, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_23);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+4788:                     location_delivery += city_deliveries[y]
                  __pyx_t_23 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4788, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  if (unlikely(__pyx_v_city_deliveries == Py_None)) {
                    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                    __PYX_ERR(0, 4788, __pyx_L1_error)
                  }
                  __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_city_deliveries, __pyx_v_y); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4788, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_18 = PyNumber_InPlaceAdd(__pyx_t_23, __pyx_t_22); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4788, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4788, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_v_location_delivery = __pyx_t_14;
                }
                __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4789: 
+4790:           delivery_by_contract = x.adjust_accounts(direct_deliveries, recharge_deliveries,contract_list, search_type, wateryear, x.key)
        __pyx_t_25 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_7 = PyFloat_FromDouble(__pyx_v_direct_deliveries); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_18 = PyFloat_FromDouble(__pyx_v_recharge_deliveries); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_6 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_25))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_25);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_25);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_25, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_t_7, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_22, __pyx_t_23};
          __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_25)) {
          PyObject *__pyx_temp[7] = {__pyx_t_6, __pyx_t_7, __pyx_t_18, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_22, __pyx_t_23};
          __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_25, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        {
          __pyx_t_9 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_t_18);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_t_22);
          PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_8, __pyx_t_22);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_9, 5+__pyx_t_8, __pyx_t_23);
          __pyx_t_7 = 0;
          __pyx_t_18 = 0;
          __pyx_t_22 = 0;
          __pyx_t_23 = 0;
          __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_25, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        }
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4790, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_delivery_by_contract, ((PyObject*)__pyx_t_3));
        __pyx_t_3 = 0;
+4791:           for y in delivery_by_contract:
        __pyx_t_12 = 0;
        if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 4791, __pyx_L1_error)
        }
        __pyx_t_25 = __Pyx_dict_iterator(__pyx_v_delivery_by_contract, 1, ((PyObject *)NULL), (&__pyx_t_20), (&__pyx_t_8)); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4791, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __Pyx_XDECREF(__pyx_t_3);
        __pyx_t_3 = __pyx_t_25;
        __pyx_t_25 = 0;
        while (1) {
          __pyx_t_28 = __Pyx_dict_iter_next(__pyx_t_3, __pyx_t_20, &__pyx_t_12, &__pyx_t_25, NULL, NULL, __pyx_t_8);
          if (unlikely(__pyx_t_28 == 0)) break;
          if (unlikely(__pyx_t_28 == -1)) __PYX_ERR(0, 4791, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_25);
          __pyx_t_25 = 0;
+4792:             self.contract_keys[y].adjust_accounts(delivery_by_contract[y], search_type, wateryear)
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4792, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_y); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4792, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_23, __pyx_n_s_adjust_accounts); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4792, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 4792, __pyx_L1_error)
          }
          __pyx_t_23 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_y); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4792, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4792, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_18 = NULL;
          __pyx_t_28 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
            __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_9);
            if (likely(__pyx_t_18)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
              __Pyx_INCREF(__pyx_t_18);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_9, function);
              __pyx_t_28 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_23, __pyx_v_search_type, __pyx_t_22};
            __pyx_t_25 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4792, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
            PyObject *__pyx_temp[4] = {__pyx_t_18, __pyx_t_23, __pyx_v_search_type, __pyx_t_22};
            __pyx_t_25 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_28, 3+__pyx_t_28); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4792, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          } else
          #endif
          {
            __pyx_t_7 = PyTuple_New(3+__pyx_t_28); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4792, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            if (__pyx_t_18) {
              __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_18); __pyx_t_18 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_28, __pyx_t_23);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_28, __pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_28, __pyx_t_22);
            __pyx_t_23 = 0;
            __pyx_t_22 = 0;
            __pyx_t_25 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, NULL); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4792, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_25);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
+4793:             location_delivery += delivery_by_contract[y]
          __pyx_t_25 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4793, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_25);
          if (unlikely(__pyx_v_delivery_by_contract == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 4793, __pyx_L1_error)
          }
          __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_delivery_by_contract, __pyx_v_y); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4793, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_7 = PyNumber_InPlaceAdd(__pyx_t_25, __pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4793, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4793, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_v_location_delivery = __pyx_t_14;
        }
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __pyx_L45:;
 4794:           #recalfews_src flow and turnout on each canal, check for capacity turnback at the next node				
 4795:         #find new district demand at the node
+4796:         demand_constraint = x.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4796, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4796, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4796, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_22 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_22)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_22);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_9, __pyx_t_25};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4796, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_9, __pyx_t_25};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4796, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      } else
      #endif
      {
        __pyx_t_23 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        if (__pyx_t_22) {
          __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22); __pyx_t_22 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_8, __pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_8, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_8, __pyx_t_25);
        __pyx_t_9 = 0;
        __pyx_t_25 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_23, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4796, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4796, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_demand_constraint = __pyx_t_14;
+4797:         self.find_node_demand_district(x, canal, canal_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_district); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_23 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_25);
      __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4797, __pyx_L1_error) }
      __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4797, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_18 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[13] = {__pyx_t_18, __pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_v_canal, __pyx_v_canal_loc, __pyx_t_23, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_25, __pyx_t_9, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_22};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 12+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4797, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[13] = {__pyx_t_18, __pyx_cur_scope->__pyx_v_x, __pyx_cur_scope->__pyx_v_canal, __pyx_v_canal_loc, __pyx_t_23, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_25, __pyx_t_9, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_22};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 12+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4797, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      } else
      #endif
      {
        __pyx_t_6 = PyTuple_New(12+__pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4797, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (__pyx_t_18) {
          __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_18); __pyx_t_18 = NULL;
        }
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_x);
        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_x);
        PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_8, __pyx_cur_scope->__pyx_v_x);
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_8, __pyx_cur_scope->__pyx_v_canal);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_8, __pyx_t_23);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_6, 4+__pyx_t_8, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_6, 5+__pyx_t_8, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_6, 6+__pyx_t_8, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_25);
        PyTuple_SET_ITEM(__pyx_t_6, 7+__pyx_t_8, __pyx_t_25);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_6, 8+__pyx_t_8, __pyx_t_9);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_6, 9+__pyx_t_8, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_6, 10+__pyx_t_8, __pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_t_22);
        PyTuple_SET_ITEM(__pyx_t_6, 11+__pyx_t_8, __pyx_t_22);
        __pyx_t_23 = 0;
        __pyx_t_25 = 0;
        __pyx_t_9 = 0;
        __pyx_t_22 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4797, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4798:         canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4798, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_6 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4798, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4798, __pyx_L1_error) }
      __pyx_t_22 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_22)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_22);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_t_6, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4798, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
        PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_t_6, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4798, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      } else
      #endif
      {
        __pyx_t_9 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4798, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        if (__pyx_t_22) {
          __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_22); __pyx_t_22 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_8, __pyx_t_6);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_8, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_8, __pyx_v_type_list);
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_9, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4798, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 4799: 
+4800:       elif x.is_Canal == 1:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_3, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4800, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4800, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_2) {
/* … */
    }
    __pyx_L35:;
 4801:         #if object is a canal, determine if water can flow from current canal into this canal (and orient the direction of flow)
+4802:         new_flow_dir = canal.flow_directions[flow_type][x.name]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_v_flow_type); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4802, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_flow_dir, __pyx_t_9);
      __pyx_t_9 = 0;
+4803:         new_canal_size = self.canal_district_len[x.name]
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4803, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_x, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4803, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_t_7); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4803, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_3); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4803, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_new_canal_size = __pyx_t_8;
 4804:         #how much flow can go into this new canal
+4805:         turnout_available = canal.turnout[flow_dir][canal_loc]*cfs_tafd - canal.turnout_use[canal_loc]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_v_flow_dir); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_9 = PyNumber_Multiply(__pyx_t_3, __pyx_t_7); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_canal_loc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Subtract(__pyx_t_9, __pyx_t_3); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_7); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4805, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_v_turnout_available = __pyx_t_14;
 4806:         #initial demand for flow on the canal
 4807:         # location_delivery = 0.0
 4808:         # priorities = {}
 4809:         # priority_turnout_adjusted = {}
+4810:         for zz in type_list:
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4810, __pyx_L1_error) }
      __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
      for (;;) {
        if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_3); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4810, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4810, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4811:           location_delivery += canal.demand[zz][canal_loc]*type_fractions[zz]
        __pyx_t_3 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_canal_loc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_22 = PyNumber_Multiply(__pyx_t_9, __pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = PyNumber_InPlaceAdd(__pyx_t_3, __pyx_t_22); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4811, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_location_delivery = __pyx_t_14;
 4812:           # priorities[zz] = 0.0
 4813:           # priority_turnout_adjusted[zz] = 0.0
 4814: 
 4815:         #if there is space & demand, 'jump' into new canal - outputs serve as turnouts from the current canal
+4816:         location_delivery = min(location_delivery, turnout_available)
      __pyx_t_14 = __pyx_v_turnout_available;
      __pyx_t_30 = __pyx_v_location_delivery;
      if (((__pyx_t_14 < __pyx_t_30) != 0)) {
        __pyx_t_16 = __pyx_t_14;
      } else {
        __pyx_t_16 = __pyx_t_30;
      }
      __pyx_v_location_delivery = __pyx_t_16;
+4817:         if turnout_available > 0.001 and location_delivery > 0.001:
      __pyx_t_1 = ((__pyx_v_turnout_available > 0.001) != 0);
      if (__pyx_t_1) {
      } else {
        __pyx_t_2 = __pyx_t_1;
        goto __pyx_L84_bool_binop_done;
      }
      __pyx_t_1 = ((__pyx_v_location_delivery > 0.001) != 0);
      __pyx_t_2 = __pyx_t_1;
      __pyx_L84_bool_binop_done:;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L83;
      }
+4818:           new_excess_flow, canal_demands = self.distribute_canal_deliveries(dowy, x, canal.key, contract_canal, location_delivery, new_canal_size, wateryear, new_flow_dir, flow_type, search_type)
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_9 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_25 = __Pyx_PyInt_From_int(__pyx_v_new_canal_size); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        __pyx_t_23 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __pyx_t_18 = NULL;
        __pyx_t_8 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
          __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_6);
          if (likely(__pyx_t_18)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
            __Pyx_INCREF(__pyx_t_18);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_6, function);
            __pyx_t_8 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[11] = {__pyx_t_18, __pyx_t_22, __pyx_cur_scope->__pyx_v_x, __pyx_t_3, __pyx_v_contract_canal, __pyx_t_9, __pyx_t_25, __pyx_t_23, __pyx_v_new_flow_dir, __pyx_v_flow_type, __pyx_v_search_type};
          __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
          PyObject *__pyx_temp[11] = {__pyx_t_18, __pyx_t_22, __pyx_cur_scope->__pyx_v_x, __pyx_t_3, __pyx_v_contract_canal, __pyx_t_9, __pyx_t_25, __pyx_t_23, __pyx_v_new_flow_dir, __pyx_v_flow_type, __pyx_v_search_type};
          __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        } else
        #endif
        {
          __pyx_t_24 = PyTuple_New(10+__pyx_t_8); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          if (__pyx_t_18) {
            __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_18); __pyx_t_18 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_22);
          PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_8, __pyx_t_22);
          __Pyx_INCREF(__pyx_cur_scope->__pyx_v_x);
          __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_x);
          PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_8, __pyx_cur_scope->__pyx_v_x);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_8, __pyx_t_3);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_8, __pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_8, __pyx_t_9);
          __Pyx_GIVEREF(__pyx_t_25);
          PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_8, __pyx_t_25);
          __Pyx_GIVEREF(__pyx_t_23);
          PyTuple_SET_ITEM(__pyx_t_24, 6+__pyx_t_8, __pyx_t_23);
          __Pyx_INCREF(__pyx_v_new_flow_dir);
          __Pyx_GIVEREF(__pyx_v_new_flow_dir);
          PyTuple_SET_ITEM(__pyx_t_24, 7+__pyx_t_8, __pyx_v_new_flow_dir);
          __Pyx_INCREF(__pyx_v_flow_type);
          __Pyx_GIVEREF(__pyx_v_flow_type);
          PyTuple_SET_ITEM(__pyx_t_24, 8+__pyx_t_8, __pyx_v_flow_type);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_24, 9+__pyx_t_8, __pyx_v_search_type);
          __pyx_t_22 = 0;
          __pyx_t_3 = 0;
          __pyx_t_9 = 0;
          __pyx_t_25 = 0;
          __pyx_t_23 = 0;
          __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_24, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
          PyObject* sequence = __pyx_t_7;
          Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
          if (unlikely(size != 2)) {
            if (size > 2) __Pyx_RaiseTooManyValuesError(2);
            else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
            __PYX_ERR(0, 4818, __pyx_L1_error)
          }
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          if (likely(PyTuple_CheckExact(sequence))) {
            __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
            __pyx_t_24 = PyTuple_GET_ITEM(sequence, 1); 
          } else {
            __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
            __pyx_t_24 = PyList_GET_ITEM(sequence, 1); 
          }
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_24);
          #else
          __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_24 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          #endif
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        } else {
          Py_ssize_t index = -1;
          __pyx_t_23 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4818, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_10 = Py_TYPE(__pyx_t_23)->tp_iternext;
          index = 0; __pyx_t_6 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_6)) goto __pyx_L86_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_6);
          index = 1; __pyx_t_24 = __pyx_t_10(__pyx_t_23); if (unlikely(!__pyx_t_24)) goto __pyx_L86_unpacking_failed;
          __Pyx_GOTREF(__pyx_t_24);
          if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_23), 2) < 0) __PYX_ERR(0, 4818, __pyx_L1_error)
          __pyx_t_10 = NULL;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          goto __pyx_L87_unpacking_done;
          __pyx_L86_unpacking_failed:;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_10 = NULL;
          if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
          __PYX_ERR(0, 4818, __pyx_L1_error)
          __pyx_L87_unpacking_done:;
        }
        __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4818, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_24))||((__pyx_t_24) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_24)->tp_name), 0))) __PYX_ERR(0, 4818, __pyx_L1_error)
        __pyx_v_new_excess_flow = __pyx_t_16;
        __Pyx_XDECREF_SET(__pyx_v_canal_demands, ((PyObject*)__pyx_t_24));
        __pyx_t_24 = 0;
 4819:           #update canal demands
+4820:           for zz in type_list:
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4820, __pyx_L1_error) }
        __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
        for (;;) {
          if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_24 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_24); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4820, __pyx_L1_error)
          #else
          __pyx_t_24 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4820, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          #endif
          __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
          __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_24);
          __Pyx_GIVEREF(__pyx_t_24);
          __pyx_t_24 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4821:             canal.demand[zz][canal_loc] = canal_demands[zz]
          if (unlikely(__pyx_v_canal_demands == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 4821, __pyx_L1_error)
          }
          __pyx_t_24 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4821, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4821, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4821, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_v_canal_loc, __pyx_t_24) < 0)) __PYX_ERR(0, 4821, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+4822:           if new_excess_flow > 0.0:
        __pyx_t_2 = ((__pyx_v_new_excess_flow > 0.0) != 0);
        if (__pyx_t_2) {
/* … */
        }
+4823:             for zz in type_list:
          if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4823, __pyx_L1_error) }
          __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
          for (;;) {
            if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_24 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_24); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4823, __pyx_L1_error)
            #else
            __pyx_t_24 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4823, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            #endif
            __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
            __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_24);
            __Pyx_GIVEREF(__pyx_t_24);
            __pyx_t_24 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4824:               canal.demand[zz][canal_loc] = 0.0
            __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4824, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_24, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4824, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
            if (unlikely(PyObject_SetItem(__pyx_t_23, __pyx_v_canal_loc, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4824, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
 4825:           #recalfews_src deliveries
+4826:           location_delivery -= new_excess_flow
        __pyx_v_location_delivery = (__pyx_v_location_delivery - __pyx_v_new_excess_flow);
+4827:           canal_fractions = {}
        __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4827, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_XDECREF_SET(__pyx_v_canal_fractions, ((PyObject*)__pyx_t_7));
        __pyx_t_7 = 0;
+4828:           for zz in type_list:
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4828, __pyx_L1_error) }
        __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
        for (;;) {
          if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_23 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_23); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4828, __pyx_L1_error)
          #else
          __pyx_t_23 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4828, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          #endif
          __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
          __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_23);
          __Pyx_GIVEREF(__pyx_t_23);
          __pyx_t_23 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4829:             canal_fractions[zz] = 0.0
          if (unlikely(PyDict_SetItem(__pyx_v_canal_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4829, __pyx_L1_error)
 4830:         else:
 4831:           # new_excess_flow = 0.0
+4832:           location_delivery = 0.0
      /*else*/ {
        __pyx_v_location_delivery = 0.0;
      }
      __pyx_L83:;
 4833:           # canal_fractions = {}
 4834:           # for zz in type_list:
 4835:             # canal_fractions[zz] = 0.0
 4836: 
+4837:         canal.find_turnout_adjustment(turnout_available, flow_dir, canal_loc, type_list)
      __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_24 = PyFloat_FromDouble(__pyx_v_turnout_available); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4837, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4837, __pyx_L1_error) }
      __pyx_t_6 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_23);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_23, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4837, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
        PyObject *__pyx_temp[5] = {__pyx_t_6, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4837, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      } else
      #endif
      {
        __pyx_t_25 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_25);
        if (__pyx_t_6) {
          __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_25, 0, __pyx_t_6); __pyx_t_6 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_24);
        PyTuple_SET_ITEM(__pyx_t_25, 0+__pyx_t_8, __pyx_t_24);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_25, 1+__pyx_t_8, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_25, 2+__pyx_t_8, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_25, 3+__pyx_t_8, __pyx_v_type_list);
        __pyx_t_24 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_25, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4837, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      }
      __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4838:       #recalfews_src flow and turnout on each canal, check for capacity turnback at the next node
+4839:       available_flow, turnback_flow, turnback_end, remaining_excess_flow = canal.update_canal_use(available_flow, location_delivery, flow_dir, canal_loc, starting_point, canal_size, type_list)
    __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_update_canal_use); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_23);
    __pyx_t_25 = PyFloat_FromDouble(__pyx_v_available_flow); if (unlikely(!__pyx_t_25)) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_25);
    __pyx_t_24 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_24);
    __pyx_t_6 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4839, __pyx_L1_error) }
    __pyx_t_3 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_23);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_23, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_t_25, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_t_6, __pyx_t_9, __pyx_v_type_list};
      __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4839, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
      PyObject *__pyx_temp[8] = {__pyx_t_3, __pyx_t_25, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_t_6, __pyx_t_9, __pyx_v_type_list};
      __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_8, 7+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4839, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_25); __pyx_t_25 = 0;
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    } else
    #endif
    {
      __pyx_t_22 = PyTuple_New(7+__pyx_t_8); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4839, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      if (__pyx_t_3) {
        __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_3); __pyx_t_3 = NULL;
      }
      __Pyx_GIVEREF(__pyx_t_25);
      PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_8, __pyx_t_25);
      __Pyx_GIVEREF(__pyx_t_24);
      PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_8, __pyx_t_24);
      __Pyx_INCREF(__pyx_v_flow_dir);
      __Pyx_GIVEREF(__pyx_v_flow_dir);
      PyTuple_SET_ITEM(__pyx_t_22, 2+__pyx_t_8, __pyx_v_flow_dir);
      __Pyx_INCREF(__pyx_v_canal_loc);
      __Pyx_GIVEREF(__pyx_v_canal_loc);
      PyTuple_SET_ITEM(__pyx_t_22, 3+__pyx_t_8, __pyx_v_canal_loc);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_22, 4+__pyx_t_8, __pyx_t_6);
      __Pyx_GIVEREF(__pyx_t_9);
      PyTuple_SET_ITEM(__pyx_t_22, 5+__pyx_t_8, __pyx_t_9);
      __Pyx_INCREF(__pyx_v_type_list);
      __Pyx_GIVEREF(__pyx_v_type_list);
      PyTuple_SET_ITEM(__pyx_t_22, 6+__pyx_t_8, __pyx_v_type_list);
      __pyx_t_25 = 0;
      __pyx_t_24 = 0;
      __pyx_t_6 = 0;
      __pyx_t_9 = 0;
      __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_22, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4839, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    }
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
      PyObject* sequence = __pyx_t_7;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 4)) {
        if (size > 4) __Pyx_RaiseTooManyValuesError(4);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 4839, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_23 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_22 = PyTuple_GET_ITEM(sequence, 1); 
        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 2); 
        __pyx_t_6 = PyTuple_GET_ITEM(sequence, 3); 
      } else {
        __pyx_t_23 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_22 = PyList_GET_ITEM(sequence, 1); 
        __pyx_t_9 = PyList_GET_ITEM(sequence, 2); 
        __pyx_t_6 = PyList_GET_ITEM(sequence, 3); 
      }
      __Pyx_INCREF(__pyx_t_23);
      __Pyx_INCREF(__pyx_t_22);
      __Pyx_INCREF(__pyx_t_9);
      __Pyx_INCREF(__pyx_t_6);
      #else
      {
        Py_ssize_t i;
        PyObject** temps[4] = {&__pyx_t_23,&__pyx_t_22,&__pyx_t_9,&__pyx_t_6};
        for (i=0; i < 4; i++) {
          PyObject* item = PySequence_ITEM(sequence, i); if (unlikely(!item)) __PYX_ERR(0, 4839, __pyx_L1_error)
          __Pyx_GOTREF(item);
          *(temps[i]) = item;
        }
      }
      #endif
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    } else {
      Py_ssize_t index = -1;
      PyObject** temps[4] = {&__pyx_t_23,&__pyx_t_22,&__pyx_t_9,&__pyx_t_6};
      __pyx_t_24 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4839, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_24)->tp_iternext;
      for (index=0; index < 4; index++) {
        PyObject* item = __pyx_t_10(__pyx_t_24); if (unlikely(!item)) goto __pyx_L95_unpacking_failed;
        __Pyx_GOTREF(item);
        *(temps[index]) = item;
      }
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_24), 4) < 0) __PYX_ERR(0, 4839, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      goto __pyx_L96_unpacking_done;
      __pyx_L95_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 4839, __pyx_L1_error)
      __pyx_L96_unpacking_done:;
    }
    __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
    __pyx_t_14 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_14 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_8 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_8 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_6); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4839, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_available_flow = __pyx_t_16;
    __pyx_v_turnback_flow = __pyx_t_14;
    __pyx_v_turnback_end = __pyx_t_8;
    __pyx_v_remaining_excess_flow = __pyx_t_30;
+4840:       excess_flow += remaining_excess_flow
    __pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_remaining_excess_flow);
 4841:       #if there is more demand/available water than canal capacity at the next canal node, the 'extra' water (that was expected to be delivered down-canal in earlier calculations) can be distributed among upstream nodes if there is remaining demand
+4842:       type_demands[zz] -= canal.demand[zz][canal_loc]     ### NOTE: this seems weird, zz out of scope - ALH
    if (unlikely(!__pyx_cur_scope->__pyx_v_zz)) { __Pyx_RaiseUnboundLocalError("zz"); __PYX_ERR(0, 4842, __pyx_L1_error) }
    __Pyx_INCREF(__pyx_cur_scope->__pyx_v_zz);
    __pyx_t_7 = __pyx_cur_scope->__pyx_v_zz;
    __pyx_t_6 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    if (unlikely(!__pyx_cur_scope->__pyx_v_zz)) { __Pyx_RaiseUnboundLocalError("zz"); __PYX_ERR(0, 4842, __pyx_L1_error) }
    __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_22, __pyx_v_canal_loc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __pyx_t_22 = PyNumber_InPlaceSubtract(__pyx_t_6, __pyx_t_9); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_type_demands, __pyx_t_7, __pyx_t_22) < 0)) __PYX_ERR(0, 4842, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 4843: 
+4844:       if turnback_flow > 0.001:
    __pyx_t_2 = ((__pyx_v_turnback_flow > 0.001) != 0);
    if (__pyx_t_2) {
/* … */
    }
+4845:         remaining_excess_flow, unmet_canal_demands = self.distribute_canal_deliveries(dowy, canal, prev_canal, contract_canal, turnback_flow, turnback_end, wateryear, flow_dir, flow_type, search_type)
      __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_distribute_canal_deliveries); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_22);
      __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_6 = PyFloat_FromDouble(__pyx_v_turnback_flow); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_23 = __Pyx_PyInt_From_int(__pyx_v_turnback_end); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_23);
      __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_24);
      __pyx_t_25 = NULL;
      __pyx_t_8 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
        __pyx_t_25 = PyMethod_GET_SELF(__pyx_t_22);
        if (likely(__pyx_t_25)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
          __Pyx_INCREF(__pyx_t_25);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_22, function);
          __pyx_t_8 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[11] = {__pyx_t_25, __pyx_t_9, __pyx_cur_scope->__pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_t_6, __pyx_t_23, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_search_type};
        __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
        PyObject *__pyx_temp[11] = {__pyx_t_25, __pyx_t_9, __pyx_cur_scope->__pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_t_6, __pyx_t_23, __pyx_t_24, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_search_type};
        __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_8, 10+__pyx_t_8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_25); __pyx_t_25 = 0;
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(10+__pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_25) {
          __Pyx_GIVEREF(__pyx_t_25); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_25); __pyx_t_25 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_8, __pyx_t_9);
        __Pyx_INCREF(__pyx_cur_scope->__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_cur_scope->__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_8, __pyx_cur_scope->__pyx_v_canal);
        __Pyx_INCREF(__pyx_v_prev_canal);
        __Pyx_GIVEREF(__pyx_v_prev_canal);
        PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_8, __pyx_v_prev_canal);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_8, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_6);
        PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_8, __pyx_t_6);
        __Pyx_GIVEREF(__pyx_t_23);
        PyTuple_SET_ITEM(__pyx_t_3, 5+__pyx_t_8, __pyx_t_23);
        __Pyx_GIVEREF(__pyx_t_24);
        PyTuple_SET_ITEM(__pyx_t_3, 6+__pyx_t_8, __pyx_t_24);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_3, 7+__pyx_t_8, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_flow_type);
        __Pyx_GIVEREF(__pyx_v_flow_type);
        PyTuple_SET_ITEM(__pyx_t_3, 8+__pyx_t_8, __pyx_v_flow_type);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_3, 9+__pyx_t_8, __pyx_v_search_type);
        __pyx_t_9 = 0;
        __pyx_t_6 = 0;
        __pyx_t_23 = 0;
        __pyx_t_24 = 0;
        __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_3, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_7))) || (PyList_CheckExact(__pyx_t_7))) {
        PyObject* sequence = __pyx_t_7;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 4845, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_22 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_22);
        __Pyx_INCREF(__pyx_t_3);
        #else
        __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_24 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4845, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_10 = Py_TYPE(__pyx_t_24)->tp_iternext;
        index = 0; __pyx_t_22 = __pyx_t_10(__pyx_t_24); if (unlikely(!__pyx_t_22)) goto __pyx_L98_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_22);
        index = 1; __pyx_t_3 = __pyx_t_10(__pyx_t_24); if (unlikely(!__pyx_t_3)) goto __pyx_L98_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_24), 2) < 0) __PYX_ERR(0, 4845, __pyx_L1_error)
        __pyx_t_10 = NULL;
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        goto __pyx_L99_unpacking_done;
        __pyx_L98_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __pyx_t_10 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 4845, __pyx_L1_error)
        __pyx_L99_unpacking_done:;
      }
      __pyx_t_30 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_30 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4845, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
      if (!(likely(PyDict_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4845, __pyx_L1_error)
      __pyx_v_remaining_excess_flow = __pyx_t_30;
      __Pyx_XDECREF_SET(__pyx_v_unmet_canal_demands, ((PyObject*)__pyx_t_3));
      __pyx_t_3 = 0;
+4846:         excess_flow += remaining_excess_flow
      __pyx_v_excess_flow = (__pyx_v_excess_flow + __pyx_v_remaining_excess_flow);
+4847:         available_capacity_int = max(available_flow, 0.0)
      __pyx_t_30 = 0.0;
      __pyx_t_14 = __pyx_v_available_flow;
      if (((__pyx_t_30 > __pyx_t_14) != 0)) {
        __pyx_t_16 = __pyx_t_30;
      } else {
        __pyx_t_16 = __pyx_t_14;
      }
      __pyx_v_available_capacity_int = __pyx_t_16;
+4848:         for zz in type_list:
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4848, __pyx_L1_error) }
      __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
      for (;;) {
        if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_3); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 4848, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4848, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
        __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_3);
        __pyx_t_3 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+4849:           if type_demands[zz] > 0.0:
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4849, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_22 = PyObject_RichCompare(__pyx_t_3, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4849, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4849, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        if (__pyx_t_2) {
/* … */
          goto __pyx_L102;
        }
+4850:             type_fractions[zz] = max(min(available_capacity_int/type_demands[zz], 1.0), 0.0)
          __pyx_t_16 = 0.0;
          __pyx_t_30 = 1.0;
          __pyx_t_22 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_24 = __Pyx_PyNumber_Divide(__pyx_t_22, __pyx_t_3); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_22 = PyFloat_FromDouble(__pyx_t_30); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_23 = PyObject_RichCompare(__pyx_t_22, __pyx_t_24, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (__pyx_t_2) {
            __pyx_t_23 = PyFloat_FromDouble(__pyx_t_30); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4850, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_3 = __pyx_t_23;
            __pyx_t_23 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_24);
            __pyx_t_3 = __pyx_t_24;
          }
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_INCREF(__pyx_t_3);
          __pyx_t_24 = __pyx_t_3;
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_23 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_22 = PyObject_RichCompare(__pyx_t_23, __pyx_t_24, Py_GT); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          if (__pyx_t_2) {
            __pyx_t_22 = PyFloat_FromDouble(__pyx_t_16); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4850, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_3 = __pyx_t_22;
            __pyx_t_22 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_24);
            __pyx_t_3 = __pyx_t_24;
          }
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __pyx_t_24 = __pyx_t_3;
          __Pyx_INCREF(__pyx_t_24);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_t_24) < 0)) __PYX_ERR(0, 4850, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
 4851:           else:
+4852:             type_fractions[zz] = 0.0
        /*else*/ {
          if (unlikely(PyDict_SetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4852, __pyx_L1_error)
        }
        __pyx_L102:;
+4853:           available_capacity_int -= type_demands[zz]*type_fractions[zz]
        __pyx_t_24 = PyFloat_FromDouble(__pyx_v_available_capacity_int); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_24);
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_type_demands, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_22 = __Pyx_PyDict_GetItem(__pyx_v_type_fractions, __pyx_cur_scope->__pyx_v_zz); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_23 = PyNumber_Multiply(__pyx_t_3, __pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = PyNumber_InPlaceSubtract(__pyx_t_24, __pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __pyx_t_16 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_16 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4853, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_v_available_capacity_int = __pyx_t_16;
 4854: 
 4855: 	#sum remaining demand after all deliveries have been madw
+4856:     unmet_demands = {}
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4856, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_unmet_demands = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+4857:     for zz in type_list:
  if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4857, __pyx_L1_error) }
  __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
  for (;;) {
    if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_7 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 4857, __pyx_L1_error)
    #else
    __pyx_t_7 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4857, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v_zz);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v_zz, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_7);
    __pyx_t_7 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4858:       unmet_demands[zz] = sum((canal.demand[zz][_] for _ in canal_range))
static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_6genexpr(PyObject *__pyx_self) {
  struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_3_genexpr *__pyx_cur_scope;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __pyx_cur_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_3_genexpr *)__pyx_tp_new_14calfews_src_cy_8model_cy___pyx_scope_struct_3_genexpr(__pyx_ptype_14calfews_src_cy_8model_cy___pyx_scope_struct_3_genexpr, __pyx_empty_tuple, NULL);
  if (unlikely(!__pyx_cur_scope)) {
    __pyx_cur_scope = ((struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct_3_genexpr *)Py_None);
    __Pyx_INCREF(Py_None);
    __PYX_ERR(0, 4858, __pyx_L1_error)
  } else {
    __Pyx_GOTREF(__pyx_cur_scope);
  }
  __pyx_cur_scope->__pyx_outer_scope = (struct __pyx_obj_14calfews_src_cy_8model_cy___pyx_scope_struct__distribute_canal_deliveries *) __pyx_self;
  __Pyx_INCREF(((PyObject *)__pyx_cur_scope->__pyx_outer_scope));
  __Pyx_GIVEREF(__pyx_cur_scope->__pyx_outer_scope);
  {
    __pyx_CoroutineObject *gen = __Pyx_Generator_New((__pyx_coroutine_body_t) __pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_8generator2, NULL, (PyObject *) __pyx_cur_scope, __pyx_n_s_genexpr, __pyx_n_s_Model_distribute_canal_deliverie, __pyx_n_s_calfews_src_cy_model_cy); if (unlikely(!gen)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_DECREF(__pyx_cur_scope);
    __Pyx_RefNannyFinishContext();
    return (PyObject *) gen;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.distribute_canal_deliveries.genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __Pyx_DECREF(((PyObject *)__pyx_cur_scope));
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_gb_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_8generator2(__pyx_CoroutineObject *__pyx_generator, CYTHON_UNUSED PyThreadState *__pyx_tstate, PyObject *__pyx_sent_value) /* generator body */
{
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("genexpr", 0);
  __Pyx_TraceDeclarations
  __pyx_L3_first_run:;
  if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4858, __pyx_L1_error)
  if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) { __Pyx_RaiseClosureNameError("canal_range"); __PYX_ERR(0, 4858, __pyx_L1_error) }
  if (likely(PyList_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range)) {
    __pyx_t_1 = __pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4858, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4858, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4858, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 4858, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4858, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4858, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XGOTREF(__pyx_cur_scope->__pyx_v__);
    __Pyx_XDECREF_SET(__pyx_cur_scope->__pyx_v__, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_4);
    __pyx_t_4 = 0;
    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal)) { __Pyx_RaiseClosureNameError("canal"); __PYX_ERR(0, 4858, __pyx_L1_error) }
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_cur_scope->__pyx_outer_scope->__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(!__pyx_cur_scope->__pyx_outer_scope->__pyx_v_zz)) { __Pyx_RaiseClosureNameError("zz"); __PYX_ERR(0, 4858, __pyx_L1_error) }
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_cur_scope->__pyx_outer_scope->__pyx_v_zz); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_cur_scope->__pyx_v__); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_r = __pyx_t_4;
    __pyx_t_4 = 0;
    __Pyx_XGIVEREF(__pyx_t_1);
    __pyx_cur_scope->__pyx_t_0 = __pyx_t_1;
    __pyx_cur_scope->__pyx_t_1 = __pyx_t_2;
    __pyx_cur_scope->__pyx_t_2 = __pyx_t_3;
    __Pyx_XGIVEREF(__pyx_r);
    __Pyx_TraceReturn(__pyx_r, 0);
    __Pyx_RefNannyFinishContext();
    __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
    /* return from generator, yielding value */
    __pyx_generator->resume_label = 1;
    return __pyx_r;
    __pyx_L6_resume_from_yield:;
    __pyx_t_1 = __pyx_cur_scope->__pyx_t_0;
    __pyx_cur_scope->__pyx_t_0 = 0;
    __Pyx_XGOTREF(__pyx_t_1);
    __pyx_t_2 = __pyx_cur_scope->__pyx_t_1;
    __pyx_t_3 = __pyx_cur_scope->__pyx_t_2;
    if (unlikely(!__pyx_sent_value)) __PYX_ERR(0, 4858, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  CYTHON_MAYBE_UNUSED_VAR(__pyx_cur_scope);

  /* function exit code */
  PyErr_SetNone(PyExc_StopIteration);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("genexpr", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_r); __pyx_r = 0;
  #if !CYTHON_USE_EXC_INFO_STACK
  __Pyx_Coroutine_ResetAndClearException(__pyx_generator);
  #endif
  __pyx_generator->resume_label = -1;
  __Pyx_Coroutine_clear((PyObject*)__pyx_generator);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
    __pyx_t_7 = __pyx_pf_14calfews_src_cy_8model_cy_5Model_27distribute_canal_deliveries_6genexpr(((PyObject*)__pyx_cur_scope)); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_22 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_22);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyDict_SetItem(__pyx_v_unmet_demands, __pyx_cur_scope->__pyx_v_zz, __pyx_t_22) < 0)) __PYX_ERR(0, 4858, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
 4859:     # unmet_demands = {}
 4860:     # for zz in type_list:
 4861:     #   unmet_demands[zz] = 0.0
 4862:     # for canal_loc in canal_range:
 4863:     #   for  zz in type_list:
 4864:     #     unmet_demands[zz] += canal.demand[zz][canal_loc]
 4865: 
 4866:     # for zz in type_list:
 4867:     #   unmet_demands[zz] = 0.0
 4868:     # for canal_loc in canal_range:
 4869:     #   for  zz in type_list:
 4870:     #     unmet_demands[zz] += canal.demand[zz][canal_loc]
 4871: 
+4872:     return excess_flow, unmet_demands
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyFloat_FromDouble(__pyx_v_excess_flow); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 4872, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_22);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_5);
  __Pyx_INCREF(__pyx_v_unmet_demands);
  __Pyx_GIVEREF(__pyx_v_unmet_demands);
  PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_v_unmet_demands);
  __pyx_t_5 = 0;
  __pyx_r = __pyx_t_22;
  __pyx_t_22 = 0;
  goto __pyx_L0;
 4873: 
 4874: 
 4875: 
+4876:   def search_canal_demand(self, int dowy, canal, prev_canal, contract_canal, str flow_dir, str flow_type, int wateryear, str search_type, dict existing_deliveries):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_87search_canal_demand(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_87search_canal_demand = {"search_canal_demand", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_87search_canal_demand, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_87search_canal_demand(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  int __pyx_v_dowy;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_prev_canal = 0;
  PyObject *__pyx_v_contract_canal = 0;
  PyObject *__pyx_v_flow_dir = 0;
  PyObject *__pyx_v_flow_type = 0;
  int __pyx_v_wateryear;
  PyObject *__pyx_v_search_type = 0;
  PyObject *__pyx_v_existing_deliveries = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("search_canal_demand (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_dowy,&__pyx_n_s_canal,&__pyx_n_s_prev_canal,&__pyx_n_s_contract_canal,&__pyx_n_s_flow_dir,&__pyx_n_s_flow_type,&__pyx_n_s_wateryear,&__pyx_n_s_search_type,&__pyx_n_s_existing_deliveries,0};
    PyObject* values[10] = {0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 1); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 2); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_prev_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 3); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 4); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 5); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 6); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 7); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 8); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_existing_deliveries)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, 9); __PYX_ERR(0, 4876, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "search_canal_demand") < 0)) __PYX_ERR(0, 4876, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 10) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
    }
    __pyx_v_self = values[0];
    __pyx_v_dowy = __Pyx_PyInt_As_int(values[1]); if (unlikely((__pyx_v_dowy == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4876, __pyx_L3_error)
    __pyx_v_canal = values[2];
    __pyx_v_prev_canal = values[3];
    __pyx_v_contract_canal = values[4];
    __pyx_v_flow_dir = ((PyObject*)values[5]);
    __pyx_v_flow_type = ((PyObject*)values[6]);
    __pyx_v_wateryear = __Pyx_PyInt_As_int(values[7]); if (unlikely((__pyx_v_wateryear == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4876, __pyx_L3_error)
    __pyx_v_search_type = ((PyObject*)values[8]);
    __pyx_v_existing_deliveries = ((PyObject*)values[9]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("search_canal_demand", 1, 10, 10, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 4876, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.search_canal_demand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flow_dir), (&PyUnicode_Type), 1, "flow_dir", 1))) __PYX_ERR(0, 4876, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_flow_type), (&PyUnicode_Type), 1, "flow_type", 1))) __PYX_ERR(0, 4876, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_search_type), (&PyUnicode_Type), 1, "search_type", 1))) __PYX_ERR(0, 4876, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_existing_deliveries), (&PyDict_Type), 1, "existing_deliveries", 1))) __PYX_ERR(0, 4876, __pyx_L1_error)
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_86search_canal_demand(__pyx_self, __pyx_v_self, __pyx_v_dowy, __pyx_v_canal, __pyx_v_prev_canal, __pyx_v_contract_canal, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_existing_deliveries);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_86search_canal_demand(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, int __pyx_v_dowy, PyObject *__pyx_v_canal, PyObject *__pyx_v_prev_canal, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_flow_type, int __pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_existing_deliveries) {
  PyObject *__pyx_v_type_list = 0;
  PyObject *__pyx_v_priority_list = 0;
  PyObject *__pyx_v_contract_list = 0;
  PyObject *__pyx_v_empty_demands = 0;
  PyObject *__pyx_v_type_deliveries = 0;
  PyObject *__pyx_v_available_to_canal = 0;
  PyObject *__pyx_v_canal_demands = 0;
  PyObject *__pyx_v_priorities = 0;
  PyObject *__pyx_v_paper_fractions = 0;
  int __pyx_v_toggle_partial_delivery;
  int __pyx_v_toggle_district_recharge;
  int __pyx_v_canal_size;
  int __pyx_v_starting_point;
  int __pyx_v_num_members;
  double __pyx_v_private_demand_constraint;
  double __pyx_v_demand_constraint;
  double __pyx_v_current_recovery;
  double __pyx_v_current_storage;
  double __pyx_v_total_demand;
  double __pyx_v_priority_bank_space;
  double __pyx_v_paper_amount;
  CYTHON_UNUSED double __pyx_v_direct_amount;
  double __pyx_v_total_district_demand;
  double __pyx_v_total_available;
  CYTHON_UNUSED double __pyx_v_existing_canal_space;
  double __pyx_v_total_exchange;
  double __pyx_v_paper_recovery;
  double __pyx_v_private_deliveries;
  double __pyx_v_direct_recovery;
  double __pyx_v_max_flow;
  double __pyx_v_committed;
  double __pyx_v_location_delivery;
  double __pyx_v_total_paper;
  PyObject *__pyx_v_new_flow_dir = 0;
  PyObject *__pyx_v_list_member = NULL;
  PyObject *__pyx_v_canal_range = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_canal_loc = NULL;
  PyObject *__pyx_v_zz = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_demand_constraint_by_contracts = NULL;
  PyObject *__pyx_v_deliveries = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_contract_frac_list = NULL;
  PyObject *__pyx_v_delivery_type = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_city_pump = NULL;
  PyObject *__pyx_v_lookback_range = NULL;
  PyObject *__pyx_v_lookback_loc = NULL;
  PyObject *__pyx_v_paper_delivery = NULL;
  PyObject *__pyx_v_yy = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__70)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("search_canal_demand", 0);
  __Pyx_TraceCall("search_canal_demand", __pyx_f[0], 4876, 0, __PYX_ERR(0, 4876, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_18);
  __Pyx_XDECREF(__pyx_t_22);
  __Pyx_XDECREF(__pyx_t_23);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.search_canal_demand", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_type_list);
  __Pyx_XDECREF(__pyx_v_priority_list);
  __Pyx_XDECREF(__pyx_v_contract_list);
  __Pyx_XDECREF(__pyx_v_empty_demands);
  __Pyx_XDECREF(__pyx_v_type_deliveries);
  __Pyx_XDECREF(__pyx_v_available_to_canal);
  __Pyx_XDECREF(__pyx_v_canal_demands);
  __Pyx_XDECREF(__pyx_v_priorities);
  __Pyx_XDECREF(__pyx_v_paper_fractions);
  __Pyx_XDECREF(__pyx_v_new_flow_dir);
  __Pyx_XDECREF(__pyx_v_list_member);
  __Pyx_XDECREF(__pyx_v_canal_range);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_canal_loc);
  __Pyx_XDECREF(__pyx_v_zz);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_demand_constraint_by_contracts);
  __Pyx_XDECREF(__pyx_v_deliveries);
  __Pyx_XDECREF(__pyx_v_contract_frac_list);
  __Pyx_XDECREF(__pyx_v_delivery_type);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_city_pump);
  __Pyx_XDECREF(__pyx_v_lookback_range);
  __Pyx_XDECREF(__pyx_v_lookback_loc);
  __Pyx_XDECREF(__pyx_v_paper_delivery);
  __Pyx_XDECREF(__pyx_v_yy);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__132 = PyTuple_Pack(61, __pyx_n_s_self, __pyx_n_s_dowy, __pyx_n_s_canal, __pyx_n_s_prev_canal, __pyx_n_s_contract_canal, __pyx_n_s_flow_dir, __pyx_n_s_flow_type, __pyx_n_s_wateryear, __pyx_n_s_search_type, __pyx_n_s_existing_deliveries, __pyx_n_s_type_list, __pyx_n_s_priority_list, __pyx_n_s_contract_list, __pyx_n_s_empty_demands, __pyx_n_s_type_deliveries, __pyx_n_s_available_to_canal, __pyx_n_s_canal_demands, __pyx_n_s_priorities, __pyx_n_s_paper_fractions, __pyx_n_s_toggle_partial_delivery, __pyx_n_s_toggle_district_recharge, __pyx_n_s_canal_size, __pyx_n_s_starting_point, __pyx_n_s_num_members, __pyx_n_s_private_demand_constraint, __pyx_n_s_demand_constraint, __pyx_n_s_current_recovery, __pyx_n_s_current_storage, __pyx_n_s_total_demand, __pyx_n_s_priority_bank_space, __pyx_n_s_paper_amount, __pyx_n_s_direct_amount, __pyx_n_s_total_district_demand, __pyx_n_s_total_available, __pyx_n_s_existing_canal_space, __pyx_n_s_total_exchange, __pyx_n_s_paper_recovery, __pyx_n_s_private_deliveries, __pyx_n_s_direct_recovery, __pyx_n_s_max_flow, __pyx_n_s_committed, __pyx_n_s_location_delivery, __pyx_n_s_total_paper, __pyx_n_s_new_flow_dir, __pyx_n_s_list_member, __pyx_n_s_canal_range, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_canal_loc, __pyx_n_s_zz, __pyx_n_s_wb_member, __pyx_n_s_demand_constraint_by_contracts, __pyx_n_s_deliveries, __pyx_n_s_contract_frac_list, __pyx_n_s_delivery_type, __pyx_n_s_y, __pyx_n_s_city_pump, __pyx_n_s_lookback_range, __pyx_n_s_lookback_loc, __pyx_n_s_paper_delivery, __pyx_n_s_yy); if (unlikely(!__pyx_tuple__132)) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__132);
  __Pyx_GIVEREF(__pyx_tuple__132);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_87search_canal_demand, 0, __pyx_n_s_Model_search_canal_demand, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__70)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_search_canal_demand, __pyx_t_2) < 0) __PYX_ERR(0, 4876, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__70 = (PyObject*)__Pyx_PyCode_New(10, 0, 61, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__132, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_search_canal_demand, 4876, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__70)) __PYX_ERR(0, 4876, __pyx_L1_error)
 4877:     ## Cython type declarations for whole function
 4878:     cdef list type_list, priority_list, contract_list
 4879:     cdef dict empty_demands, type_deliveries, available_to_canal, canal_demands, priorities, paper_fractions
 4880:     cdef int toggle_partial_delivery, toggle_district_recharge, canal_size, starting_point, num_members
 4881:     cdef double private_demand_constraint, demand_constraint, current_recovery, current_storage, total_demand, priority_bank_space, paper_amount, direct_amount, \
 4882:                 total_district_demand, total_available, existing_canal_space, total_exchange, paper_recovery, private_deliveries, direct_recovery, max_flow, \
 4883:                 committed, location_delivery, total_paper
 4884:     cdef str new_flow_dir
 4885: 
+4886:     if search_type == 'flood':
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_flood_2, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4886, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
 4887:       #for flood flows, need to distinguish between districts with a contract
 4888: 	  #to the water being spilled (1st priority), districts with a turnout on
 4889: 	  #a 'favored' canal (i.e, one that won't disrupt flows from other sources,
 4890: 	  #2nd priority), and districts with turnouts on other canals that can still
 4891: 	  #be technically reached from this source (3rd priority)
+4892:       type_list = ['contractor', 'alternate', 'turnout', 'excess']
    __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4892, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_contractor);
    __Pyx_GIVEREF(__pyx_n_u_contractor);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_contractor);
    __Pyx_INCREF(__pyx_n_u_alternate);
    __Pyx_GIVEREF(__pyx_n_u_alternate);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_alternate);
    __Pyx_INCREF(__pyx_n_u_turnout);
    __Pyx_GIVEREF(__pyx_n_u_turnout);
    PyList_SET_ITEM(__pyx_t_3, 2, __pyx_n_u_turnout);
    __Pyx_INCREF(__pyx_n_u_excess);
    __Pyx_GIVEREF(__pyx_n_u_excess);
    PyList_SET_ITEM(__pyx_t_3, 3, __pyx_n_u_excess);
    __pyx_v_type_list = ((PyObject*)__pyx_t_3);
    __pyx_t_3 = 0;
+4893:       toggle_partial_delivery = 0
    __pyx_v_toggle_partial_delivery = 0;
+4894:       toggle_district_recharge = 1
    __pyx_v_toggle_district_recharge = 1;
+4895:     if search_type == 'delivery':
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_delivery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4895, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {
/* … */
  }
+4896:       type_list = [contract_canal]
    __pyx_t_3 = PyList_New(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4896, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_v_contract_canal);
    __Pyx_GIVEREF(__pyx_v_contract_canal);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_v_contract_canal);
    __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;
+4897:       toggle_partial_delivery = 1
    __pyx_v_toggle_partial_delivery = 1;
+4898:       toggle_district_recharge = 0
    __pyx_v_toggle_district_recharge = 0;
+4899:     if search_type == 'banking':
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4899, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+4900:       type_list = ['priority', 'secondary']
    __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_priority);
    __Pyx_GIVEREF(__pyx_n_u_priority);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_priority);
    __Pyx_INCREF(__pyx_n_u_secondary);
    __Pyx_GIVEREF(__pyx_n_u_secondary);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_secondary);
    __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;
+4901:       toggle_partial_delivery = 0
    __pyx_v_toggle_partial_delivery = 0;
+4902:       toggle_district_recharge = 1
    __pyx_v_toggle_district_recharge = 1;
+4903:     if search_type == 'recovery':
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4903, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {
/* … */
  }
 4904:       #if we are trying to distribute recovery water, we need to know how much 'initial' space is owned by each district in the recovery capacity at a waterbank/leiubank and then how much supplemental space, which can be used by individual districts if the capacity is not being used (same as for banking above, just w/ different names)
+4905:       type_list = ['initial', 'supplemental']
    __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4905, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_INCREF(__pyx_n_u_initial);
    __Pyx_GIVEREF(__pyx_n_u_initial);
    PyList_SET_ITEM(__pyx_t_3, 0, __pyx_n_u_initial);
    __Pyx_INCREF(__pyx_n_u_supplemental);
    __Pyx_GIVEREF(__pyx_n_u_supplemental);
    PyList_SET_ITEM(__pyx_t_3, 1, __pyx_n_u_supplemental);
    __Pyx_XDECREF_SET(__pyx_v_type_list, ((PyObject*)__pyx_t_3));
    __pyx_t_3 = 0;
+4906:       toggle_partial_delivery = 1
    __pyx_v_toggle_partial_delivery = 1;
+4907:       toggle_district_recharge = 0
    __pyx_v_toggle_district_recharge = 0;
 4908: 
 4909:     #find the range of nodes to 'search' on this canal
+4910:     canal_size = self.canal_district_len[canal.name]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4910, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_5); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_canal_size = __pyx_t_6;
+4911:     if flow_dir == "closed":
  __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_closed, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4911, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+4912:       empty_demands = {}
    __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_v_empty_demands = ((PyObject*)__pyx_t_5);
    __pyx_t_5 = 0;
+4913:       for list_member in type_list:
    if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4913, __pyx_L1_error) }
    __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    for (;;) {
      if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4913, __pyx_L1_error)
      #else
      __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4913, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_list_member, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4914:         empty_demands[list_member] = 0.0
      if (unlikely(PyDict_SetItem(__pyx_v_empty_demands, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4914, __pyx_L1_error)
+4915:       return empty_demands
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_empty_demands);
    __pyx_r = __pyx_v_empty_demands;
    goto __pyx_L0;
 4916:     else:
+4917:       canal_range, starting_point = self.set_canal_range(flow_dir, flow_type, canal, prev_canal, canal_size)
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4917, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    __pyx_t_6 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_6 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[6] = {__pyx_t_8, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_canal, __pyx_v_prev_canal, __pyx_t_3};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[6] = {__pyx_t_8, __pyx_v_flow_dir, __pyx_v_flow_type, __pyx_v_canal, __pyx_v_prev_canal, __pyx_t_3};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    } else
    #endif
    {
      __pyx_t_9 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_flow_dir);
      __Pyx_GIVEREF(__pyx_v_flow_dir);
      PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_6, __pyx_v_flow_dir);
      __Pyx_INCREF(__pyx_v_flow_type);
      __Pyx_GIVEREF(__pyx_v_flow_type);
      PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_6, __pyx_v_flow_type);
      __Pyx_INCREF(__pyx_v_canal);
      __Pyx_GIVEREF(__pyx_v_canal);
      PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_6, __pyx_v_canal);
      __Pyx_INCREF(__pyx_v_prev_canal);
      __Pyx_GIVEREF(__pyx_v_prev_canal);
      PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_6, __pyx_v_prev_canal);
      __Pyx_GIVEREF(__pyx_t_3);
      PyTuple_SET_ITEM(__pyx_t_9, 4+__pyx_t_6, __pyx_t_3);
      __pyx_t_3 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_9, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
      PyObject* sequence = __pyx_t_5;
      Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
      if (unlikely(size != 2)) {
        if (size > 2) __Pyx_RaiseTooManyValuesError(2);
        else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
        __PYX_ERR(0, 4917, __pyx_L1_error)
      }
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      if (likely(PyTuple_CheckExact(sequence))) {
        __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
        __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
      } else {
        __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
        __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
      }
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(__pyx_t_9);
      #else
      __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      #endif
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else {
      Py_ssize_t index = -1;
      __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4917, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
      index = 0; __pyx_t_4 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_4)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_4);
      index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_9)) goto __pyx_L10_unpacking_failed;
      __Pyx_GOTREF(__pyx_t_9);
      if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_3), 2) < 0) __PYX_ERR(0, 4917, __pyx_L1_error)
      __pyx_t_10 = NULL;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      goto __pyx_L11_unpacking_done;
      __pyx_L10_unpacking_failed:;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_10 = NULL;
      if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
      __PYX_ERR(0, 4917, __pyx_L1_error)
      __pyx_L11_unpacking_done:;
    }
    __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_9); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 4917, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_v_canal_range = __pyx_t_4;
    __pyx_t_4 = 0;
    __pyx_v_starting_point = __pyx_t_6;
  }
 4918: 
 4919:     #initialize/clear dictionaries to store different types of demand on the canal
 4920: 	#different flow 'modes' require different types of demand to be distinguished
 4921: 
+4922:     type_deliveries = {}
  __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4922, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_v_type_deliveries = ((PyObject*)__pyx_t_5);
  __pyx_t_5 = 0;
+4923:     for list_member in type_list:
  if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4923, __pyx_L1_error) }
  __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
  for (;;) {
    if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_9 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_9); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4923, __pyx_L1_error)
    #else
    __pyx_t_9 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4923, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_list_member, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4924:       canal.demand[list_member] = np.zeros(canal_size)
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_list_member, __pyx_t_9) < 0)) __PYX_ERR(0, 4924, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4925:       canal.turnout_frac[list_member] = np.zeros(canal_size)
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
      }
    }
    __pyx_t_9 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_4, __pyx_t_8, __pyx_t_3) : __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_v_list_member, __pyx_t_9) < 0)) __PYX_ERR(0, 4925, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+4926:       if existing_deliveries == {}:
    __pyx_t_9 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_existing_deliveries, __pyx_t_9, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4926, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4926, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L14;
    }
+4927:         type_deliveries[list_member] = 0.0
      if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_list_member, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4927, __pyx_L1_error)
 4928:       else:
+4929:         type_deliveries[list_member] = existing_deliveries[list_member]
    /*else*/ {
      if (unlikely(__pyx_v_existing_deliveries == Py_None)) {
        PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
        __PYX_ERR(0, 4929, __pyx_L1_error)
      }
      __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_existing_deliveries, __pyx_v_list_member); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4929, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_list_member, __pyx_t_4) < 0)) __PYX_ERR(0, 4929, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    }
    __pyx_L14:;
+4930:       canal.recovery_flow_frac[list_member] = np.ones(canal_size)
    __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_ones); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_canal_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_8 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_4 = (__pyx_t_8) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_9);
    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_list_member, __pyx_t_4) < 0)) __PYX_ERR(0, 4930, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 4931: 
 4932:     #canal priority
+4933:     priority_list = self.canal_priority[canal.name]
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_priority); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4933, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (!(likely(PyList_CheckExact(__pyx_t_3))||((__pyx_t_3) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_3)->tp_name), 0))) __PYX_ERR(0, 4933, __pyx_L1_error)
  __pyx_v_priority_list = ((PyObject*)__pyx_t_3);
  __pyx_t_3 = 0;
 4934:     #contracts on this canal
+4935:     contract_list = self.canal_contract[contract_canal]
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_contract_canal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (!(likely(PyList_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "list", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 4935, __pyx_L1_error)
  __pyx_v_contract_list = ((PyObject*)__pyx_t_4);
  __pyx_t_4 = 0;
 4936: 
 4937:     #MAIN SEARCH LOOP - within the canal range identified above, search through
 4938:     #the objects in self.canal_district to determine the total demand on the canal
 4939:     #(divided by demand 'type')
 4940: 
+4941:     for x in self.district_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_7 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4941, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_11 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4941, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4941, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4941, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4941, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4941, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_11(__pyx_t_3);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4941, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4942:       x.private_demand = {}
    __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_demand, __pyx_t_4) < 0) __PYX_ERR(0, 4942, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4943:       x.private_delivery = {}
    __pyx_t_4 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_private_delivery, __pyx_t_4) < 0) __PYX_ERR(0, 4943, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4944:     for x in self.private_list:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
    __pyx_t_4 = __pyx_t_3; __Pyx_INCREF(__pyx_t_4); __pyx_t_7 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4944, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_11 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4944, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_4))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4944, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4944, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4944, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_4, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4944, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_11(__pyx_t_4);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4944, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4945:       for xx in x.district_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_5 = __pyx_t_3; __Pyx_INCREF(__pyx_t_5); __pyx_t_12 = 0;
      __pyx_t_13 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4945, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_13 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4945, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_13)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4945, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4945, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_12); __Pyx_INCREF(__pyx_t_3); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4945, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4945, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_13(__pyx_t_5);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4945, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 4946:         # district_object = self.district_keys[xx]
+4947:         private_demand_constraint = x.find_node_demand(contract_list,search_type, xx)
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4947, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
        if (likely(__pyx_t_8)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
          __Pyx_INCREF(__pyx_t_8);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_9, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4947, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
        PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4947, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GOTREF(__pyx_t_3);
      } else
      #endif
      {
        __pyx_t_14 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4947, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        if (__pyx_t_8) {
          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_8); __pyx_t_8 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_6, __pyx_v_xx);
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_14, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4947, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      }
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_3); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4947, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_v_private_demand_constraint = __pyx_t_15;
+4948:         self.district_keys[xx].private_demand[x.key] = private_demand_constraint
      __pyx_t_3 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_14, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (unlikely(PyObject_SetItem(__pyx_t_9, __pyx_t_14, __pyx_t_3) < 0)) __PYX_ERR(0, 4948, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4949:         self.district_keys[xx].private_delivery[x.key] = x.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,xx)
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_9 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_16 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
        __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_14);
        if (likely(__pyx_t_16)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
          __Pyx_INCREF(__pyx_t_16);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_14, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_14)) {
        PyObject *__pyx_temp[7] = {__pyx_t_16, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_8, __pyx_v_xx};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4949, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
        PyObject *__pyx_temp[7] = {__pyx_t_16, __pyx_t_9, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_8, __pyx_v_xx};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4949, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      } else
      #endif
      {
        __pyx_t_17 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4949, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        if (__pyx_t_16) {
          __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_16); __pyx_t_16 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_t_9);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_6, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_6, __pyx_t_8);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_6, __pyx_v_xx);
        __pyx_t_9 = 0;
        __pyx_t_8 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_17, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4949, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      }
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_t_17, __pyx_t_3) < 0)) __PYX_ERR(0, 4949, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+4950:     for x in self.city_list:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4950, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
    __pyx_t_5 = __pyx_t_4; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4950, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4950, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4950, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4950, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_4); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4950, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4950, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_11(__pyx_t_5);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4950, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4951:       for xx in x.district_list:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4951, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
      __pyx_t_3 = __pyx_t_4; __Pyx_INCREF(__pyx_t_3); __pyx_t_12 = 0;
      __pyx_t_13 = NULL;
    } else {
      __pyx_t_12 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4951, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_13 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4951, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    for (;;) {
      if (likely(!__pyx_t_13)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4951, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4951, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4951, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_3, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4951, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_13(__pyx_t_3);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 4951, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 4952:         # district_object = self.district_keys[xx]
+4953:         private_demand_constraint = x.find_node_demand(contract_list,search_type, xx)
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4953, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_14 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_17);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_17, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_17)) {
        PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4953, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
        PyObject *__pyx_temp[4] = {__pyx_t_14, __pyx_v_contract_list, __pyx_v_search_type, __pyx_v_xx};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4953, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4953, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_14) {
          __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14); __pyx_t_14 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_v_xx);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4953, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4953, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_v_private_demand_constraint = __pyx_t_15;
+4954:         self.district_keys[xx].private_demand[x.key] = private_demand_constraint
      __pyx_t_4 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      if (unlikely(PyObject_SetItem(__pyx_t_17, __pyx_t_8, __pyx_t_4) < 0)) __PYX_ERR(0, 4954, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4955:         self.district_keys[xx].private_delivery[x.key] = x.set_request_to_district(private_demand_constraint,search_type,contract_list,0.0,dowy,xx)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_request_to_district); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_17 = PyFloat_FromDouble(__pyx_v_private_demand_constraint); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_9 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[7] = {__pyx_t_9, __pyx_t_17, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_14, __pyx_v_xx};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4955, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[7] = {__pyx_t_9, __pyx_t_17, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_t_14, __pyx_v_xx};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_6, 6+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4955, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      {
        __pyx_t_16 = PyTuple_New(6+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4955, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        if (__pyx_t_9) {
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9); __pyx_t_9 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_17);
        PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_6, __pyx_t_17);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_float_0_0);
        PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_6, __pyx_float_0_0);
        __Pyx_GIVEREF(__pyx_t_14);
        PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_6, __pyx_t_14);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_16, 5+__pyx_t_6, __pyx_v_xx);
        __pyx_t_17 = 0;
        __pyx_t_14 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_16, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4955, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_16, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_16, __pyx_t_4) < 0)) __PYX_ERR(0, 4955, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 4956: 
+4957:     for canal_loc in canal_range:
  if (likely(PyList_CheckExact(__pyx_v_canal_range)) || PyTuple_CheckExact(__pyx_v_canal_range)) {
    __pyx_t_5 = __pyx_v_canal_range; __Pyx_INCREF(__pyx_t_5); __pyx_t_7 = 0;
    __pyx_t_11 = NULL;
  } else {
    __pyx_t_7 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_canal_range); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 4957, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 4957, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_11)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_7 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4957, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4957, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      } else {
        if (__pyx_t_7 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_7); __Pyx_INCREF(__pyx_t_3); __pyx_t_7++; if (unlikely(0 < 0)) __PYX_ERR(0, 4957, __pyx_L1_error)
        #else
        __pyx_t_3 = PySequence_ITEM(__pyx_t_5, __pyx_t_7); __pyx_t_7++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4957, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
      }
    } else {
      __pyx_t_3 = __pyx_t_11(__pyx_t_5);
      if (unlikely(!__pyx_t_3)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 4957, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_3);
    }
    __Pyx_XDECREF_SET(__pyx_v_canal_loc, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+4958:       x = self.canal_district[canal.name][canal_loc]
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_canal_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4958, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_4);
    __pyx_t_4 = 0;
+4959:       demand_constraint = 0.0
    __pyx_v_demand_constraint = 0.0;
+4960:       if x.is_District == 1:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_District); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_16 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4960, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (__pyx_t_2) {
/* … */
      goto __pyx_L27;
    }
 4961:         #find demand at the node
 4962:         #partial delivery is used if the district recieves less than full daily demand due to projected contract allocations being lower than expected remaining annual demand
 4963:         #find district demand at the node
+4964:         if search_type == "recovery":
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4964, __pyx_L1_error)
      __pyx_t_1 = (__pyx_t_2 != 0);
      if (__pyx_t_1) {
/* … */
        goto __pyx_L28;
      }
+4965:           demand_constraint = x.find_node_output()
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
          }
        }
        __pyx_t_16 = (__pyx_t_3) ? __Pyx_PyObject_CallOneArg(__pyx_t_4, __pyx_t_3) : __Pyx_PyObject_CallNoArg(__pyx_t_4);
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4965, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_16); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4965, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_v_demand_constraint = __pyx_t_15;
 4966:         else:
+4967:           demand_constraint = x.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
      /*else*/ {
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4967, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_14 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_14)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_14);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_3, __pyx_t_8};
          __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4967, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_3, __pyx_t_8};
          __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4967, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        } else
        #endif
        {
          __pyx_t_17 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4967, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          if (__pyx_t_14) {
            __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_14); __pyx_t_14 = NULL;
          }
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_t_3);
          PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_t_3);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_6, __pyx_t_8);
          __pyx_t_3 = 0;
          __pyx_t_8 = 0;
          __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_17, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4967, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_16); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4967, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_v_demand_constraint = __pyx_t_15;
      }
      __pyx_L28:;
+4968:         self.find_node_demand_district(x, canal, canal_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_district); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_17 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 4968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4968, __pyx_L1_error) }
      __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4968, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __pyx_t_9 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[13] = {__pyx_t_9, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_t_17, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_3, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_14};
        __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 12+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4968, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[13] = {__pyx_t_9, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_t_17, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_3, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_14};
        __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 12+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4968, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      {
        __pyx_t_18 = PyTuple_New(12+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4968, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (__pyx_t_9) {
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_9); __pyx_t_9 = NULL;
        }
        __Pyx_INCREF(__pyx_v_x);
        __Pyx_GIVEREF(__pyx_v_x);
        PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_6, __pyx_v_x);
        __Pyx_INCREF(__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_6, __pyx_v_canal);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_6, __pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_t_17);
        PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_6, __pyx_t_17);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_18, 4+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_18, 5+__pyx_t_6, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_18, 6+__pyx_t_6, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_18, 7+__pyx_t_6, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_18, 8+__pyx_t_6, __pyx_t_3);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_18, 9+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_18, 10+__pyx_t_6, __pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_t_14);
        PyTuple_SET_ITEM(__pyx_t_18, 11+__pyx_t_6, __pyx_t_14);
        __pyx_t_17 = 0;
        __pyx_t_8 = 0;
        __pyx_t_3 = 0;
        __pyx_t_14 = 0;
        __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_18, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4968, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+4969:         canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_18 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4969, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4969, __pyx_L1_error) }
      __pyx_t_14 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_t_18, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4969, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[5] = {__pyx_t_14, __pyx_t_18, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4969, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4969, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_14) {
          __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_14); __pyx_t_14 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_18);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_t_18);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_6, __pyx_v_type_list);
        __pyx_t_18 = 0;
        __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4969, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
 4970: 
+4971:       elif x.is_Waterbank == 1:
    __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4971, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __pyx_t_4 = __Pyx_PyInt_EqObjC(__pyx_t_16, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4971, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4971, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_1) {
/* … */
      goto __pyx_L27;
    }
+4972:         self.find_node_demand_bank(x, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_bank); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4972, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 4972, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4972, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4972, __pyx_L1_error) }
      __pyx_t_14 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
        __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_16);
        if (likely(__pyx_t_14)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
          __Pyx_INCREF(__pyx_t_14);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_16, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_16)) {
        PyObject *__pyx_temp[11] = {__pyx_t_14, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_3, __pyx_t_18, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4972, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
        PyObject *__pyx_temp[11] = {__pyx_t_14, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_3, __pyx_t_18, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4972, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4972, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_14) {
          __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_14); __pyx_t_14 = NULL;
        }
        __Pyx_INCREF(__pyx_v_x);
        __Pyx_GIVEREF(__pyx_v_x);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_v_x);
        __Pyx_INCREF(__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_canal);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_8, 4+__pyx_t_6, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_8, 5+__pyx_t_6, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_3);
        PyTuple_SET_ITEM(__pyx_t_8, 6+__pyx_t_6, __pyx_t_3);
        __Pyx_GIVEREF(__pyx_t_18);
        PyTuple_SET_ITEM(__pyx_t_8, 7+__pyx_t_6, __pyx_t_18);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_8, 8+__pyx_t_6, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_8, 9+__pyx_t_6, __pyx_v_type_list);
        __pyx_t_3 = 0;
        __pyx_t_18 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4972, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 4973:         #once all member demands/requests/priorities have been established, we can determine how much of each type of demand can be sent to the bank (b/c of turnout space)
+4974:         if search_type == 'recovery':
      __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 4974, __pyx_L1_error)
      __pyx_t_2 = (__pyx_t_1 != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L29;
      }
+4975:           current_recovery = 0.0
        __pyx_v_current_recovery = 0.0;
+4976:           for xx in x.participant_list:
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4976, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
          __pyx_t_16 = __pyx_t_4; __Pyx_INCREF(__pyx_t_16); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_16 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4976, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_13 = Py_TYPE(__pyx_t_16)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4976, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_16))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_16)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_16, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4976, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_16, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4976, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_16)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_16, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4976, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_16, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4976, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_13(__pyx_t_16);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4976, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+4977:             current_recovery += x.recovery_use[xx]
          __pyx_t_4 = PyFloat_FromDouble(__pyx_v_current_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4977, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4977, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4977, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4977, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4977, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_v_current_recovery = __pyx_t_15;
+4978:           demand_constraint = x.recovery - current_recovery
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recovery); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4978, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_8 = PyFloat_FromDouble(__pyx_v_current_recovery); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4978, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = PyNumber_Subtract(__pyx_t_16, __pyx_t_8); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4978, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4978, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        __pyx_v_demand_constraint = __pyx_t_15;
 4979:         else:
+4980:           current_storage = 0.0
      /*else*/ {
        __pyx_v_current_storage = 0.0;
+4981:           for xx in x.participant_list:
        __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4981, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (likely(PyList_CheckExact(__pyx_t_18)) || PyTuple_CheckExact(__pyx_t_18)) {
          __pyx_t_8 = __pyx_t_18; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4981, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 4981, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_8))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_18 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4981, __pyx_L1_error)
              #else
              __pyx_t_18 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4981, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_18 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_18); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 4981, __pyx_L1_error)
              #else
              __pyx_t_18 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4981, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_18);
              #endif
            }
          } else {
            __pyx_t_18 = __pyx_t_13(__pyx_t_8);
            if (unlikely(!__pyx_t_18)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 4981, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_18);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_18);
          __pyx_t_18 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4982:             current_storage += x.storage[xx]
          __pyx_t_18 = PyFloat_FromDouble(__pyx_v_current_storage); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4982, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_storage); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4982, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4982, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_t_18, __pyx_t_4); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4982, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_16); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4982, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_v_current_storage = __pyx_t_15;
+4983:           demand_constraint = x.tot_storage - current_storage
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_tot_storage); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4983, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = PyFloat_FromDouble(__pyx_v_current_storage); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4983, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_4 = PyNumber_Subtract(__pyx_t_8, __pyx_t_16); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4983, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 4983, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_v_demand_constraint = __pyx_t_15;
+4984:           self.find_node_demand_bank(x, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
        __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_bank); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4984, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4984, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 4984, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4984, __pyx_L1_error) }
        __pyx_t_3 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_16);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_16, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_16)) {
          PyObject *__pyx_temp[11] = {__pyx_t_3, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_18, __pyx_v_search_type, __pyx_v_type_list};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4984, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
          PyObject *__pyx_temp[11] = {__pyx_t_3, __pyx_v_x, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_18, __pyx_v_search_type, __pyx_v_type_list};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 10+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4984, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(10+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4984, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_INCREF(__pyx_v_x);
          __Pyx_GIVEREF(__pyx_v_x);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_6, __pyx_v_x);
          __Pyx_INCREF(__pyx_v_canal);
          __Pyx_GIVEREF(__pyx_v_canal);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_6, __pyx_v_canal);
          __Pyx_INCREF(__pyx_v_canal_loc);
          __Pyx_GIVEREF(__pyx_v_canal_loc);
          PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_6, __pyx_v_canal_loc);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_6, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_priority_list);
          __Pyx_GIVEREF(__pyx_v_priority_list);
          PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_6, __pyx_v_priority_list);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_6, __pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_t_8);
          PyTuple_SET_ITEM(__pyx_t_14, 6+__pyx_t_6, __pyx_t_8);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_14, 7+__pyx_t_6, __pyx_t_18);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_14, 8+__pyx_t_6, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_v_type_list);
          PyTuple_SET_ITEM(__pyx_t_14, 9+__pyx_t_6, __pyx_v_type_list);
          __pyx_t_8 = 0;
          __pyx_t_18 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_14, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4984, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      }
      __pyx_L29:;
+4985:         canal.find_turnout_adjustment(demand_constraint, flow_dir, canal_loc, type_list)
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4985, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_14 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 4985, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 4985, __pyx_L1_error) }
      __pyx_t_18 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
        __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_16);
        if (likely(__pyx_t_18)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
          __Pyx_INCREF(__pyx_t_18);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_16, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_16)) {
        PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_14, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4985, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
        PyObject *__pyx_temp[5] = {__pyx_t_18, __pyx_t_14, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4985, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      } else
      #endif
      {
        __pyx_t_8 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        if (__pyx_t_18) {
          __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_18); __pyx_t_18 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_14);
        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_6, __pyx_t_14);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_6, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_canal_loc);
        __Pyx_GIVEREF(__pyx_v_canal_loc);
        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_6, __pyx_v_canal_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_6, __pyx_v_type_list);
        __pyx_t_14 = 0;
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_8, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4985, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+4986:       elif x.is_Canal == 1:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_16 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4986, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_16);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4986, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
    if (__pyx_t_2) {
/* … */
    }
    __pyx_L27:;
 4987:         #find if the new canal can be accessed from the current canal
+4988:         if canal.turnout[flow_dir][canal_loc] > 0.0:
      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4988, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_v_flow_dir); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4988, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_canal_loc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4988, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_16);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyObject_RichCompare(__pyx_t_16, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4988, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4988, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L34;
      }
 4989:           #if it can, which way does the water flow onto the new canal
+4990:           new_flow_dir = canal.flow_directions[flow_type][x.name]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4990, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_v_flow_type); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 4990, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4990, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4990, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (!(likely(PyUnicode_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "unicode", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 4990, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_new_flow_dir, ((PyObject*)__pyx_t_8));
        __pyx_t_8 = 0;
 4991:           #calculate the demands for this whole canal by recursively calling this function again, but with the new canal input parameters
+4992:           available_to_canal = {}
        __pyx_t_8 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4992, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF_SET(__pyx_v_available_to_canal, ((PyObject*)__pyx_t_8));
        __pyx_t_8 = 0;
+4993:           if x.recovery_feeder:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recovery_feeder); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 4993, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4993, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_2) {
/* … */
          goto __pyx_L35;
        }
+4994:             for zz in type_deliveries:
          __pyx_t_12 = 0;
          __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_19), (&__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4994, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_8);
          __pyx_t_8 = __pyx_t_4;
          __pyx_t_4 = 0;
          while (1) {
            __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_19, &__pyx_t_12, &__pyx_t_4, NULL, NULL, __pyx_t_6);
            if (unlikely(__pyx_t_20 == 0)) break;
            if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 4994, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
            __pyx_t_4 = 0;
+4995:               available_to_canal[zz] = 0.0
            if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 4995, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+4996:           elif search_type == 'recovery':
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 4996, __pyx_L1_error)
        __pyx_t_1 = (__pyx_t_2 != 0);
        if (__pyx_t_1) {
/* … */
          goto __pyx_L35;
        }
+4997:             for zz in type_deliveries:
          __pyx_t_19 = 0;
          __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4997, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_8);
          __pyx_t_8 = __pyx_t_4;
          __pyx_t_4 = 0;
          while (1) {
            __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_12, &__pyx_t_19, &__pyx_t_4, NULL, NULL, __pyx_t_6);
            if (unlikely(__pyx_t_20 == 0)) break;
            if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 4997, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
            __pyx_t_4 = 0;
+4998:               available_to_canal[zz] = type_deliveries[zz]
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 4998, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_t_4) < 0)) __PYX_ERR(0, 4998, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 4999:           else:
+5000:             for zz in type_deliveries:
        /*else*/ {
          __pyx_t_12 = 0;
          __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_19), (&__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5000, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_XDECREF(__pyx_t_8);
          __pyx_t_8 = __pyx_t_4;
          __pyx_t_4 = 0;
          while (1) {
            __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_8, __pyx_t_19, &__pyx_t_12, &__pyx_t_4, NULL, NULL, __pyx_t_6);
            if (unlikely(__pyx_t_20 == 0)) break;
            if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 5000, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
            __pyx_t_4 = 0;
+5001:               available_to_canal[zz] = 0.0
            if (unlikely(PyDict_SetItem(__pyx_v_available_to_canal, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5001, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        }
        __pyx_L35:;
 5002: 
+5003:           canal_demands = self.search_canal_demand(dowy, x, canal.key, contract_canal, new_flow_dir,flow_type,wateryear,search_type, available_to_canal)
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_search_canal_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_16 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_16);
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5003, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_3 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
          __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
          if (likely(__pyx_t_3)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
            __Pyx_INCREF(__pyx_t_3);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_4, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[10] = {__pyx_t_3, __pyx_t_16, __pyx_v_x, __pyx_t_14, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type, __pyx_t_18, __pyx_v_search_type, __pyx_v_available_to_canal};
          __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5003, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
          PyObject *__pyx_temp[10] = {__pyx_t_3, __pyx_t_16, __pyx_v_x, __pyx_t_14, __pyx_v_contract_canal, __pyx_v_new_flow_dir, __pyx_v_flow_type, __pyx_t_18, __pyx_v_search_type, __pyx_v_available_to_canal};
          __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 9+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5003, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        {
          __pyx_t_17 = PyTuple_New(9+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5003, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          if (__pyx_t_3) {
            __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_3); __pyx_t_3 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_16);
          PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_t_16);
          __Pyx_INCREF(__pyx_v_x);
          __Pyx_GIVEREF(__pyx_v_x);
          PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_v_x);
          __Pyx_GIVEREF(__pyx_t_14);
          PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_t_14);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_6, __pyx_v_contract_canal);
          __Pyx_INCREF(__pyx_v_new_flow_dir);
          __Pyx_GIVEREF(__pyx_v_new_flow_dir);
          PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_6, __pyx_v_new_flow_dir);
          __Pyx_INCREF(__pyx_v_flow_type);
          __Pyx_GIVEREF(__pyx_v_flow_type);
          PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_6, __pyx_v_flow_type);
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_6, __pyx_t_18);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_6, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_available_to_canal);
          __Pyx_GIVEREF(__pyx_v_available_to_canal);
          PyTuple_SET_ITEM(__pyx_t_17, 8+__pyx_t_6, __pyx_v_available_to_canal);
          __pyx_t_16 = 0;
          __pyx_t_14 = 0;
          __pyx_t_18 = 0;
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_17, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5003, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        if (!(likely(PyDict_CheckExact(__pyx_t_8))||((__pyx_t_8) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_8)->tp_name), 0))) __PYX_ERR(0, 5003, __pyx_L1_error)
        __Pyx_XDECREF_SET(__pyx_v_canal_demands, ((PyObject*)__pyx_t_8));
        __pyx_t_8 = 0;
 5004: 		  #check to see all demands can be met using the turnout space
+5005:           total_demand = 0.0
        __pyx_v_total_demand = 0.0;
+5006:           for zz in type_list:
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5006, __pyx_L1_error) }
        __pyx_t_8 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_19 = 0;
        for (;;) {
          if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_t_4); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5006, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_8, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5006, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5007:             canal.demand[zz][canal_loc] = canal_demands[zz]
          if (unlikely(__pyx_v_canal_demands == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 5007, __pyx_L1_error)
          }
          __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5007, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_18, __pyx_v_canal_loc, __pyx_t_4) < 0)) __PYX_ERR(0, 5007, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5008:             total_demand += canal_demands[zz]
          __pyx_t_4 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(__pyx_v_canal_demands == Py_None)) {
            PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
            __PYX_ERR(0, 5008, __pyx_L1_error)
          }
          __pyx_t_18 = __Pyx_PyDict_GetItem(__pyx_v_canal_demands, __pyx_v_zz); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5008, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_17); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5008, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_v_total_demand = __pyx_t_15;
+5009:           canal.find_turnout_adjustment(total_demand, flow_dir, canal_loc, type_list)
        __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_17);
        __pyx_t_18 = PyFloat_FromDouble(__pyx_v_total_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5009, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5009, __pyx_L1_error) }
        __pyx_t_4 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
          __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_17);
          if (likely(__pyx_t_4)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
            __Pyx_INCREF(__pyx_t_4);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_17, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_17)) {
          PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_18, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
          __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5009, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
          PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_18, __pyx_v_flow_dir, __pyx_v_canal_loc, __pyx_v_type_list};
          __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5009, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        } else
        #endif
        {
          __pyx_t_14 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5009, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (__pyx_t_4) {
            __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_6, __pyx_t_18);
          __Pyx_INCREF(__pyx_v_flow_dir);
          __Pyx_GIVEREF(__pyx_v_flow_dir);
          PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_6, __pyx_v_flow_dir);
          __Pyx_INCREF(__pyx_v_canal_loc);
          __Pyx_GIVEREF(__pyx_v_canal_loc);
          PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_6, __pyx_v_canal_loc);
          __Pyx_INCREF(__pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_v_type_list);
          PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_6, __pyx_v_type_list);
          __pyx_t_18 = 0;
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_14, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5009, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        }
        __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 5010:         else:
+5011:           for zz in type_list:
      /*else*/ {
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5011, __pyx_L1_error) }
        __pyx_t_8 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_19 = 0;
        for (;;) {
          if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_8)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_17 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_t_17); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5011, __pyx_L1_error)
          #else
          __pyx_t_17 = PySequence_ITEM(__pyx_t_8, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5011, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_17);
          __pyx_t_17 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      }
      __pyx_L34:;
+5012:             canal.demand[zz][canal_loc] = 0.0
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5012, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_zz); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5012, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_14, __pyx_v_canal_loc, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5012, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 5013:       #sum demand at all canal nodes
+5014:       for zz in type_list:
    if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5014, __pyx_L1_error) }
    __pyx_t_8 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_8); __pyx_t_19 = 0;
    for (;;) {
      if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_8)) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_14 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5014, __pyx_L1_error)
      #else
      __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5014, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_14);
      __pyx_t_14 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5015:         type_deliveries[zz] += canal.demand[zz][canal_loc]
      __Pyx_INCREF(__pyx_v_zz);
      __pyx_t_14 = __pyx_v_zz;
      __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_17);
      __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_18, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      __pyx_t_18 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_canal_loc); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_18);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_17, __pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
      __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_t_14, __pyx_t_4) < 0)) __PYX_ERR(0, 5015, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+5016:       if search_type == "recovery":
    __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5016, __pyx_L1_error)
    __pyx_t_2 = (__pyx_t_1 != 0);
    if (__pyx_t_2) {
/* … */
    }
+5017:         if x.is_District == 1:
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_is_District); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_14 = __Pyx_PyInt_EqObjC(__pyx_t_8, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_14);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5017, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
      if (__pyx_t_2) {
/* … */
      }
+5018:           if x.in_leiu_banking:
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5018, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5018, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (__pyx_t_2) {
/* … */
        }
+5019:             for xx in x.participant_list:
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_8 = __pyx_t_14; __Pyx_INCREF(__pyx_t_8); __pyx_t_19 = 0;
            __pyx_t_13 = NULL;
          } else {
            __pyx_t_19 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5019, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5019, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_13)) {
              if (likely(PyList_CheckExact(__pyx_t_8))) {
                if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_8)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5019, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5019, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5019, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_13(__pyx_t_8);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 5019, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5020:               if xx != x.key:
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5020, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_4 = PyObject_RichCompare(__pyx_v_xx, __pyx_t_14, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5020, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5020, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (__pyx_t_2) {
/* … */
            }
+5021:                 num_members = self.district_keys_len[xx]
              __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5021, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_14 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5021, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              __pyx_t_6 = __Pyx_PyInt_As_int(__pyx_t_14); if (unlikely((__pyx_t_6 == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 5021, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_v_num_members = __pyx_t_6;
+5022:                 for wb_member in self.district_keys[xx]:
              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5022, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5022, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
                __pyx_t_14 = __pyx_t_4; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0;
                __pyx_t_21 = NULL;
              } else {
                __pyx_t_12 = -1; __pyx_t_14 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5022, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_21 = Py_TYPE(__pyx_t_14)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5022, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
              for (;;) {
                if (likely(!__pyx_t_21)) {
                  if (likely(PyList_CheckExact(__pyx_t_14))) {
                    if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_14)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_4 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5022, __pyx_L1_error)
                    #else
                    __pyx_t_4 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5022, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_4);
                    #endif
                  } else {
                    if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_14)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5022, __pyx_L1_error)
                    #else
                    __pyx_t_4 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5022, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_4);
                    #endif
                  }
                } else {
                  __pyx_t_4 = __pyx_t_21(__pyx_t_14);
                  if (unlikely(!__pyx_t_4)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5022, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_4);
                }
                __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_4);
                __pyx_t_4 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
 5023:                   #find waterbank partner demand (i.e., recovery capacity of their ownership share)                 
+5024:                   demand_constraint, demand_constraint_by_contracts = x.find_leiu_output(contract_list, x.leiu_ownership[xx], xx, wateryear)
                __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_leiu_output); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5024, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_leiu_ownership); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5024, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5024, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5024, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_3 = NULL;
                __pyx_t_6 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
                  __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_18);
                  if (likely(__pyx_t_3)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
                    __Pyx_INCREF(__pyx_t_3);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_18, function);
                    __pyx_t_6 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_18)) {
                  PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_t_16, __pyx_v_xx, __pyx_t_17};
                  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
                  PyObject *__pyx_temp[5] = {__pyx_t_3, __pyx_v_contract_list, __pyx_t_16, __pyx_v_xx, __pyx_t_17};
                  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                } else
                #endif
                {
                  __pyx_t_9 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  if (__pyx_t_3) {
                    __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_3); __pyx_t_3 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_6, __pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_t_16);
                  PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_6, __pyx_t_16);
                  __Pyx_INCREF(__pyx_v_xx);
                  __Pyx_GIVEREF(__pyx_v_xx);
                  PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_6, __pyx_v_xx);
                  __Pyx_GIVEREF(__pyx_t_17);
                  PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_6, __pyx_t_17);
                  __pyx_t_16 = 0;
                  __pyx_t_17 = 0;
                  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_9, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                }
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
                  PyObject* sequence = __pyx_t_4;
                  Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
                  if (unlikely(size != 2)) {
                    if (size > 2) __Pyx_RaiseTooManyValuesError(2);
                    else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
                    __PYX_ERR(0, 5024, __pyx_L1_error)
                  }
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  if (likely(PyTuple_CheckExact(sequence))) {
                    __pyx_t_18 = PyTuple_GET_ITEM(sequence, 0); 
                    __pyx_t_9 = PyTuple_GET_ITEM(sequence, 1); 
                  } else {
                    __pyx_t_18 = PyList_GET_ITEM(sequence, 0); 
                    __pyx_t_9 = PyList_GET_ITEM(sequence, 1); 
                  }
                  __Pyx_INCREF(__pyx_t_18);
                  __Pyx_INCREF(__pyx_t_9);
                  #else
                  __pyx_t_18 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_9 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  #endif
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                } else {
                  Py_ssize_t index = -1;
                  __pyx_t_17 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                  __pyx_t_10 = Py_TYPE(__pyx_t_17)->tp_iternext;
                  index = 0; __pyx_t_18 = __pyx_t_10(__pyx_t_17); if (unlikely(!__pyx_t_18)) goto __pyx_L56_unpacking_failed;
                  __Pyx_GOTREF(__pyx_t_18);
                  index = 1; __pyx_t_9 = __pyx_t_10(__pyx_t_17); if (unlikely(!__pyx_t_9)) goto __pyx_L56_unpacking_failed;
                  __Pyx_GOTREF(__pyx_t_9);
                  if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_17), 2) < 0) __PYX_ERR(0, 5024, __pyx_L1_error)
                  __pyx_t_10 = NULL;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  goto __pyx_L57_unpacking_done;
                  __pyx_L56_unpacking_failed:;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __pyx_t_10 = NULL;
                  if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
                  __PYX_ERR(0, 5024, __pyx_L1_error)
                  __pyx_L57_unpacking_done:;
                }
                __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5024, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                __pyx_v_demand_constraint = __pyx_t_15;
                __Pyx_XDECREF_SET(__pyx_v_demand_constraint_by_contracts, __pyx_t_9);
                __pyx_t_9 = 0;
 5025:                   #does this partner want recovery water?
+5026:                   deliveries = wb_member.set_request_constraints(demand_constraint, search_type, contract_list, x.inleiubanked[xx], x.inleiucap[xx], dowy, wateryear)
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_18 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_18);
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_xx); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5026, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __pyx_t_23 = NULL;
                __pyx_t_6 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_23 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_23)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_23);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_6 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[8] = {__pyx_t_23, __pyx_t_18, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_16, __pyx_t_3, __pyx_t_17, __pyx_t_22};
                  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5026, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[8] = {__pyx_t_23, __pyx_t_18, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_16, __pyx_t_3, __pyx_t_17, __pyx_t_22};
                  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5026, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                {
                  __pyx_t_24 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5026, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  if (__pyx_t_23) {
                    __Pyx_GIVEREF(__pyx_t_23); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_23); __pyx_t_23 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_18);
                  PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_6, __pyx_t_18);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_6, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_6, __pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_t_16);
                  PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_6, __pyx_t_16);
                  __Pyx_GIVEREF(__pyx_t_3);
                  PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_6, __pyx_t_3);
                  __Pyx_GIVEREF(__pyx_t_17);
                  PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_6, __pyx_t_17);
                  __Pyx_GIVEREF(__pyx_t_22);
                  PyTuple_SET_ITEM(__pyx_t_24, 6+__pyx_t_6, __pyx_t_22);
                  __pyx_t_18 = 0;
                  __pyx_t_16 = 0;
                  __pyx_t_3 = 0;
                  __pyx_t_17 = 0;
                  __pyx_t_22 = 0;
                  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_24, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5026, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_XDECREF_SET(__pyx_v_deliveries, __pyx_t_4);
                __pyx_t_4 = 0;
 5027:                   #what is their priority over the water/canal space?
+5028:                   priority_bank_space = x.find_leiu_priority_space(demand_constraint, num_members, xx, 0, search_type)
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5028, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_24 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5028, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_num_members); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5028, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __pyx_t_17 = NULL;
                __pyx_t_6 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_17)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_17);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_6 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_24, __pyx_t_22, __pyx_v_xx, __pyx_int_0, __pyx_v_search_type};
                  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5028, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[6] = {__pyx_t_17, __pyx_t_24, __pyx_t_22, __pyx_v_xx, __pyx_int_0, __pyx_v_search_type};
                  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5028, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                {
                  __pyx_t_3 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5028, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  if (__pyx_t_17) {
                    __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_17); __pyx_t_17 = NULL;
                  }
                  __Pyx_GIVEREF(__pyx_t_24);
                  PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_t_24);
                  __Pyx_GIVEREF(__pyx_t_22);
                  PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_22);
                  __Pyx_INCREF(__pyx_v_xx);
                  __Pyx_GIVEREF(__pyx_v_xx);
                  PyTuple_SET_ITEM(__pyx_t_3, 2+__pyx_t_6, __pyx_v_xx);
                  __Pyx_INCREF(__pyx_int_0);
                  __Pyx_GIVEREF(__pyx_int_0);
                  PyTuple_SET_ITEM(__pyx_t_3, 3+__pyx_t_6, __pyx_int_0);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_3, 4+__pyx_t_6, __pyx_v_search_type);
                  __pyx_t_24 = 0;
                  __pyx_t_22 = 0;
                  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_3, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5028, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5028, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
                __pyx_v_priority_bank_space = __pyx_t_15;
 5029: 
+5030:                   priorities = x.set_demand_priority("N/A", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A")
                __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5030, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                __pyx_t_3 = PyFloat_FromDouble(__pyx_v_priority_bank_space); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5030, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_3);
                __pyx_t_22 = PyFloat_FromDouble(__pyx_v_demand_constraint); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5030, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_22);
                __pyx_t_24 = NULL;
                __pyx_t_6 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                  __pyx_t_24 = PyMethod_GET_SELF(__pyx_t_9);
                  if (likely(__pyx_t_24)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                    __Pyx_INCREF(__pyx_t_24);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_9, function);
                    __pyx_t_6 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_3, __pyx_v_deliveries, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
                  __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5030, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                  PyObject *__pyx_temp[8] = {__pyx_t_24, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_3, __pyx_v_deliveries, __pyx_t_22, __pyx_v_search_type, __pyx_kp_u_N_A};
                  __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_6, 7+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5030, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_24); __pyx_t_24 = 0;
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                } else
                #endif
                {
                  __pyx_t_17 = PyTuple_New(7+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5030, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  if (__pyx_t_24) {
                    __Pyx_GIVEREF(__pyx_t_24); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_24); __pyx_t_24 = NULL;
                  }
                  __Pyx_INCREF(__pyx_kp_u_N_A);
                  __Pyx_GIVEREF(__pyx_kp_u_N_A);
                  PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_kp_u_N_A);
                  __Pyx_INCREF(__pyx_kp_u_N_A);
                  __Pyx_GIVEREF(__pyx_kp_u_N_A);
                  PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_kp_u_N_A);
                  __Pyx_GIVEREF(__pyx_t_3);
                  PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_t_3);
                  __Pyx_INCREF(__pyx_v_deliveries);
                  __Pyx_GIVEREF(__pyx_v_deliveries);
                  PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_6, __pyx_v_deliveries);
                  __Pyx_GIVEREF(__pyx_t_22);
                  PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_6, __pyx_t_22);
                  __Pyx_INCREF(__pyx_v_search_type);
                  __Pyx_GIVEREF(__pyx_v_search_type);
                  PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_6, __pyx_v_search_type);
                  __Pyx_INCREF(__pyx_kp_u_N_A);
                  __Pyx_GIVEREF(__pyx_kp_u_N_A);
                  PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_6, __pyx_kp_u_N_A);
                  __pyx_t_3 = 0;
                  __pyx_t_22 = 0;
                  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5030, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_4);
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (!(likely(PyDict_CheckExact(__pyx_t_4))||((__pyx_t_4) == Py_None)||(PyErr_Format(PyExc_TypeError, "Expected %.16s, got %.200s", "dict", Py_TYPE(__pyx_t_4)->tp_name), 0))) __PYX_ERR(0, 5030, __pyx_L1_error)
                __Pyx_XDECREF_SET(__pyx_v_priorities, ((PyObject*)__pyx_t_4));
                __pyx_t_4 = 0;
 5031:                   #need to adjust the water request to account for the banking partner share of the turnout
+5032:                   for zz in type_list:
                if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5032, __pyx_L1_error) }
                __pyx_t_4 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_25 = 0;
                for (;;) {
                  if (__pyx_t_25 >= PyList_GET_SIZE(__pyx_t_4)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_9 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_25); __Pyx_INCREF(__pyx_t_9); __pyx_t_25++; if (unlikely(0 < 0)) __PYX_ERR(0, 5032, __pyx_L1_error)
                  #else
                  __pyx_t_9 = PySequence_ITEM(__pyx_t_4, __pyx_t_25); __pyx_t_25++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5032, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  #endif
                  __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_9);
                  __pyx_t_9 = 0;
/* … */
                }
                __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5033:                   #paper trade recovery is equal to 
+5034:                     paper_amount = priorities[zz]
                  if (unlikely(__pyx_v_priorities == Py_None)) {
                    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
                    __PYX_ERR(0, 5034, __pyx_L1_error)
                  }
                  __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5034, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5034, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __pyx_v_paper_amount = __pyx_t_15;
+5035:                     direct_amount = 0.0
                  __pyx_v_direct_amount = 0.0;
+5036:                     contract_frac_list = np.zeros(len(x.contract_list))
                  __Pyx_GetModuleGlobalName(__pyx_t_17, __pyx_n_s_np); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_t_17, __pyx_n_s_zeros); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_26 = PyObject_Length(__pyx_t_17); if (unlikely(__pyx_t_26 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __pyx_t_17 = PyInt_FromSsize_t(__pyx_t_26); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_3 = NULL;
                  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_3)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_3);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                    }
                  }
                  __pyx_t_9 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_22, __pyx_t_3, __pyx_t_17) : __Pyx_PyObject_CallOneArg(__pyx_t_22, __pyx_t_17);
                  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5036, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_contract_frac_list, __pyx_t_9);
                  __pyx_t_9 = 0;
 5037: 
+5038:                     wb_member.get_paper_exchange(paper_amount, x.contract_list, demand_constraint_by_contracts, wateryear)
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_get_paper_exchange); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5038, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_17 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5038, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5038, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5038, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_16 = NULL;
                  __pyx_t_6 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_16)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_16);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_6 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_16, __pyx_t_17, __pyx_t_3, __pyx_v_demand_constraint_by_contracts, __pyx_t_24};
                    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5038, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_16, __pyx_t_17, __pyx_t_3, __pyx_v_demand_constraint_by_contracts, __pyx_t_24};
                    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5038, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_18 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5038, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_18);
                    if (__pyx_t_16) {
                      __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_16); __pyx_t_16 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_17);
                    PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_6, __pyx_t_17);
                    __Pyx_GIVEREF(__pyx_t_3);
                    PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_6, __pyx_t_3);
                    __Pyx_INCREF(__pyx_v_demand_constraint_by_contracts);
                    __Pyx_GIVEREF(__pyx_v_demand_constraint_by_contracts);
                    PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_6, __pyx_v_demand_constraint_by_contracts);
                    __Pyx_GIVEREF(__pyx_t_24);
                    PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_6, __pyx_t_24);
                    __pyx_t_17 = 0;
                    __pyx_t_3 = 0;
                    __pyx_t_24 = 0;
                    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5038, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5039:                     x.adjust_exchange(paper_amount, xx, wateryear)
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_adjust_exchange); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5039, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_18 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5039, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_24 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5039, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_3 = NULL;
                  __pyx_t_6 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_3)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_3);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_6 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_18, __pyx_v_xx, __pyx_t_24};
                    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5039, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_3, __pyx_t_18, __pyx_v_xx, __pyx_t_24};
                    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5039, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_17 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5039, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    if (__pyx_t_3) {
                      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_3); __pyx_t_3 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_18);
                    PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_t_18);
                    __Pyx_INCREF(__pyx_v_xx);
                    __Pyx_GIVEREF(__pyx_v_xx);
                    PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_v_xx);
                    __Pyx_GIVEREF(__pyx_t_24);
                    PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_t_24);
                    __pyx_t_18 = 0;
                    __pyx_t_24 = 0;
                    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_17, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5039, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5040:                     x.give_paper_exchange(paper_amount, x.contract_list, demand_constraint_by_contracts, wateryear, x.key)
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_give_paper_exchange); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5040, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_17 = PyFloat_FromDouble(__pyx_v_paper_amount); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5040, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5040, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_24);
                  __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5040, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5040, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_16 = NULL;
                  __pyx_t_6 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
                    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_22);
                    if (likely(__pyx_t_16)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
                      __Pyx_INCREF(__pyx_t_16);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_22, function);
                      __pyx_t_6 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[6] = {__pyx_t_16, __pyx_t_17, __pyx_t_24, __pyx_v_demand_constraint_by_contracts, __pyx_t_18, __pyx_t_3};
                    __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5040, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
                    PyObject *__pyx_temp[6] = {__pyx_t_16, __pyx_t_17, __pyx_t_24, __pyx_v_demand_constraint_by_contracts, __pyx_t_18, __pyx_t_3};
                    __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 5+__pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5040, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_23 = PyTuple_New(5+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5040, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_23);
                    if (__pyx_t_16) {
                      __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_16); __pyx_t_16 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_17);
                    PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_t_17);
                    __Pyx_GIVEREF(__pyx_t_24);
                    PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_t_24);
                    __Pyx_INCREF(__pyx_v_demand_constraint_by_contracts);
                    __Pyx_GIVEREF(__pyx_v_demand_constraint_by_contracts);
                    PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_v_demand_constraint_by_contracts);
                    __Pyx_GIVEREF(__pyx_t_18);
                    PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_18);
                    __Pyx_GIVEREF(__pyx_t_3);
                    PyTuple_SET_ITEM(__pyx_t_23, 4+__pyx_t_6, __pyx_t_3);
                    __pyx_t_17 = 0;
                    __pyx_t_24 = 0;
                    __pyx_t_18 = 0;
                    __pyx_t_3 = 0;
                    __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_23, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5040, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_9);
                    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 5041: 
 5042:           #for non-bank district nodes, they can accept recovery water.  we want to find how much water they can accept (based on their ability to make paper trades using the contracts in contract_list, then determine how much of the recovery water up-canal, can be delivered here as a 'paper' trade, and then how much additional water can be delivered here 'directly' (i.e., the pumping out of the water bank is going to the district that owns capacity in the water bank, so no paper trades needed - this is useful if there is no surface water storage, but a district still wants water from its water bank (and can get that water directly, from the run of the canal)
+5043:           total_district_demand = x.find_node_demand(contract_list, search_type, toggle_partial_delivery, toggle_district_recharge)
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5043, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_toggle_partial_delivery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5043, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5043, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_22 = NULL;
        __pyx_t_6 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
          __pyx_t_22 = PyMethod_GET_SELF(__pyx_t_14);
          if (likely(__pyx_t_22)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
            __Pyx_INCREF(__pyx_t_22);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_14, function);
            __pyx_t_6 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_14)) {
          PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_4, __pyx_t_9};
          __pyx_t_8 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5043, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
          PyObject *__pyx_temp[5] = {__pyx_t_22, __pyx_v_contract_list, __pyx_v_search_type, __pyx_t_4, __pyx_t_9};
          __pyx_t_8 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5043, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        } else
        #endif
        {
          __pyx_t_23 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5043, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          if (__pyx_t_22) {
            __Pyx_GIVEREF(__pyx_t_22); PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22); __pyx_t_22 = NULL;
          }
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_23, 0+__pyx_t_6, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_23, 1+__pyx_t_6, __pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_23, 2+__pyx_t_6, __pyx_t_4);
          __Pyx_GIVEREF(__pyx_t_9);
          PyTuple_SET_ITEM(__pyx_t_23, 3+__pyx_t_6, __pyx_t_9);
          __pyx_t_4 = 0;
          __pyx_t_9 = 0;
          __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_23, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5043, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5043, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_v_total_district_demand = __pyx_t_15;
+5044:           total_available = 0.0
        __pyx_v_total_available = 0.0;
+5045:           existing_canal_space = canal.capacity[flow_dir][canal_loc]*cfs_tafd - canal.flow[canal_loc]
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_capacity); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_14 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_v_flow_dir); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_14, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_23 = PyNumber_Multiply(__pyx_t_8, __pyx_t_14); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_23);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_14, __pyx_v_canal_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_t_14 = PyNumber_Subtract(__pyx_t_23, __pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5045, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        __pyx_v_existing_canal_space = __pyx_t_15;
+5046:           for delivery_type in type_deliveries:
        __pyx_t_19 = 0;
        __pyx_t_8 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_6)); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5046, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_XDECREF(__pyx_t_14);
        __pyx_t_14 = __pyx_t_8;
        __pyx_t_8 = 0;
        while (1) {
          __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_14, __pyx_t_12, &__pyx_t_19, &__pyx_t_8, NULL, NULL, __pyx_t_6);
          if (unlikely(__pyx_t_20 == 0)) break;
          if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 5046, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_XDECREF_SET(__pyx_v_delivery_type, __pyx_t_8);
          __pyx_t_8 = 0;
+5047:             total_available += type_deliveries[delivery_type]
          __pyx_t_8 = PyFloat_FromDouble(__pyx_v_total_available); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5047, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_23 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_delivery_type); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5047, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_23); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5047, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_9); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5047, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_v_total_available = __pyx_t_15;
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+5048:           total_exchange = 0.0
        __pyx_v_total_exchange = 0.0;
+5049:           for y in contract_list:
        if (unlikely(__pyx_v_contract_list == Py_None)) {
          PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
          __PYX_ERR(0, 5049, __pyx_L1_error)
        }
        __pyx_t_14 = __pyx_v_contract_list; __Pyx_INCREF(__pyx_t_14); __pyx_t_12 = 0;
        for (;;) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_14)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_9 = PyList_GET_ITEM(__pyx_t_14, __pyx_t_12); __Pyx_INCREF(__pyx_t_9); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5049, __pyx_L1_error)
          #else
          __pyx_t_9 = PySequence_ITEM(__pyx_t_14, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5049, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_9);
          __pyx_t_9 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
+5050:             total_exchange += x.projected_supply[y.name]
          __pyx_t_9 = PyFloat_FromDouble(__pyx_v_total_exchange); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5050, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_v_total_exchange = __pyx_t_15;
+5051:           if x.has_private:
        __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5051, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_14);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5051, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
        if (__pyx_t_2) {
/* … */
        }
+5052:             for city_pump in self.city_list:
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5052, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
            __pyx_t_8 = __pyx_t_14; __Pyx_INCREF(__pyx_t_8); __pyx_t_12 = 0;
            __pyx_t_13 = NULL;
          } else {
            __pyx_t_12 = -1; __pyx_t_8 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5052, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_13 = Py_TYPE(__pyx_t_8)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5052, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          for (;;) {
            if (likely(!__pyx_t_13)) {
              if (likely(PyList_CheckExact(__pyx_t_8))) {
                if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_8)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyList_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5052, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5052, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              } else {
                if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_8)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5052, __pyx_L1_error)
                #else
                __pyx_t_14 = PySequence_ITEM(__pyx_t_8, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5052, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                #endif
              }
            } else {
              __pyx_t_14 = __pyx_t_13(__pyx_t_8);
              if (unlikely(!__pyx_t_14)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 5052, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_14);
            }
            __Pyx_XDECREF_SET(__pyx_v_city_pump, __pyx_t_14);
            __pyx_t_14 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5053:               for xx in city_pump.district_list:
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_district_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5053, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
              __pyx_t_4 = __pyx_t_14; __Pyx_INCREF(__pyx_t_4); __pyx_t_19 = 0;
              __pyx_t_21 = NULL;
            } else {
              __pyx_t_19 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5053, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_21 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5053, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            for (;;) {
              if (likely(!__pyx_t_21)) {
                if (likely(PyList_CheckExact(__pyx_t_4))) {
                  if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_4)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5053, __pyx_L1_error)
                  #else
                  __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5053, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  #endif
                } else {
                  if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5053, __pyx_L1_error)
                  #else
                  __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5053, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  #endif
                }
              } else {
                __pyx_t_14 = __pyx_t_21(__pyx_t_4);
                if (unlikely(!__pyx_t_14)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 5053, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_14);
              }
              __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_14);
              __pyx_t_14 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5054:                 if xx == x.key:
              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5054, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_9 = PyObject_RichCompare(__pyx_v_xx, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5054, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5054, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              if (__pyx_t_2) {
/* … */
              }
+5055:                   for y in contract_list:
                if (unlikely(__pyx_v_contract_list == Py_None)) {
                  PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
                  __PYX_ERR(0, 5055, __pyx_L1_error)
                }
                __pyx_t_9 = __pyx_v_contract_list; __Pyx_INCREF(__pyx_t_9); __pyx_t_25 = 0;
                for (;;) {
                  if (__pyx_t_25 >= PyList_GET_SIZE(__pyx_t_9)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_9, __pyx_t_25); __Pyx_INCREF(__pyx_t_14); __pyx_t_25++; if (unlikely(0 < 0)) __PYX_ERR(0, 5055, __pyx_L1_error)
                  #else
                  __pyx_t_14 = PySequence_ITEM(__pyx_t_9, __pyx_t_25); __pyx_t_25++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5055, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  #endif
                  __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_14);
                  __pyx_t_14 = 0;
/* … */
                }
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+5056:                     total_exchange += city_pump.projected_supply[x.key][y.name]
                  __pyx_t_14 = PyFloat_FromDouble(__pyx_v_total_exchange); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_projected_supply); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_23, __pyx_t_22); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_22); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_14, __pyx_t_23); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5056, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __pyx_v_total_exchange = __pyx_t_15;
+5057:           paper_recovery = min(total_district_demand, total_available, total_exchange)
        __pyx_t_15 = __pyx_v_total_available;
        __pyx_t_27 = __pyx_v_total_exchange;
        __pyx_t_28 = __pyx_v_total_district_demand;
        if (((__pyx_t_15 < __pyx_t_28) != 0)) {
          __pyx_t_29 = __pyx_t_15;
        } else {
          __pyx_t_29 = __pyx_t_28;
        }
        __pyx_t_28 = __pyx_t_29;
        if (((__pyx_t_27 < __pyx_t_28) != 0)) {
          __pyx_t_29 = __pyx_t_27;
        } else {
          __pyx_t_29 = __pyx_t_28;
        }
        __pyx_v_paper_recovery = __pyx_t_29;
+5058:           private_deliveries = 0.0
        __pyx_v_private_deliveries = 0.0;
+5059:           if x.has_private:
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5059, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5059, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_2) {
/* … */
        }
+5060:             for xx in x.private_demand:
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5060, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          if (likely(PyList_CheckExact(__pyx_t_8)) || PyTuple_CheckExact(__pyx_t_8)) {
            __pyx_t_4 = __pyx_t_8; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0;
            __pyx_t_13 = NULL;
          } else {
            __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5060, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_13 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5060, __pyx_L1_error)
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          for (;;) {
            if (likely(!__pyx_t_13)) {
              if (likely(PyList_CheckExact(__pyx_t_4))) {
                if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5060, __pyx_L1_error)
                #else
                __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5060, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                #endif
              } else {
                if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_8); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5060, __pyx_L1_error)
                #else
                __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5060, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                #endif
              }
            } else {
              __pyx_t_8 = __pyx_t_13(__pyx_t_4);
              if (unlikely(!__pyx_t_8)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 5060, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_8);
            }
            __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_8);
            __pyx_t_8 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5061:               private_deliveries += min(x.private_demand[xx], x.private_delivery[xx])
            __pyx_t_8 = PyFloat_FromDouble(__pyx_v_private_deliveries); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_delivery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_22 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_23 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_14 = PyObject_RichCompare(__pyx_t_22, __pyx_t_23, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (__pyx_t_2) {
              __Pyx_INCREF(__pyx_t_22);
              __pyx_t_9 = __pyx_t_22;
            } else {
              __Pyx_INCREF(__pyx_t_23);
              __pyx_t_9 = __pyx_t_23;
            }
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __pyx_t_22 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5061, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __pyx_v_private_deliveries = __pyx_t_29;
+5062:           direct_recovery = max(min(total_available - paper_recovery, x.dailydemand[0]*x.seepage*x.surface_water_sa + private_deliveries - paper_recovery), 0.0)
        __pyx_t_29 = 0.0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_dailydemand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_22 = __Pyx_GetItemInt(__pyx_t_4, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_seepage); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_22, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_surface_water_sa); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_22 = PyNumber_Multiply(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_private_deliveries); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = PyNumber_Add(__pyx_t_22, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyFloat_FromDouble(__pyx_v_paper_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_22 = PyNumber_Subtract(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_15 = (__pyx_v_total_available - __pyx_v_paper_recovery);
        __pyx_t_9 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __pyx_t_8 = PyObject_RichCompare(__pyx_t_22, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_2) {
          __Pyx_INCREF(__pyx_t_22);
          __pyx_t_4 = __pyx_t_22;
        } else {
          __pyx_t_8 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5062, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = __pyx_t_8;
          __pyx_t_8 = 0;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_INCREF(__pyx_t_4);
        __pyx_t_22 = __pyx_t_4;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_8 = PyFloat_FromDouble(__pyx_t_29); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_t_22, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_2) {
          __pyx_t_9 = PyFloat_FromDouble(__pyx_t_29); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5062, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = __pyx_t_9;
          __pyx_t_9 = 0;
        } else {
          __Pyx_INCREF(__pyx_t_22);
          __pyx_t_4 = __pyx_t_22;
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5062, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_v_direct_recovery = __pyx_t_29;
 5063:           #find capacity constraints between this location and the up-canal waterbanks
+5064:           if flow_dir == "normal":
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5064, __pyx_L1_error)
        __pyx_t_1 = (__pyx_t_2 != 0);
        if (__pyx_t_1) {
/* … */
          goto __pyx_L75;
        }
+5065:             lookback_range = range(starting_point, canal_loc)
          __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5065, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_22 = PyTuple_New(2); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5065, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4);
          __Pyx_INCREF(__pyx_v_canal_loc);
          __Pyx_GIVEREF(__pyx_v_canal_loc);
          PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_v_canal_loc);
          __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_22, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5065, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_4);
          __pyx_t_4 = 0;
+5066:           elif flow_dir == "reverse":
        __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5066, __pyx_L1_error)
        __pyx_t_2 = (__pyx_t_1 != 0);
        if (__pyx_t_2) {
/* … */
        }
        __pyx_L75:;
+5067:             lookback_range = range(starting_point, canal_loc, -1)
          __pyx_t_4 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5067, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_22 = PyTuple_New(3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5067, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __Pyx_GIVEREF(__pyx_t_4);
          PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_4);
          __Pyx_INCREF(__pyx_v_canal_loc);
          __Pyx_GIVEREF(__pyx_v_canal_loc);
          PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_v_canal_loc);
          __Pyx_INCREF(__pyx_int_neg_1);
          __Pyx_GIVEREF(__pyx_int_neg_1);
          PyTuple_SET_ITEM(__pyx_t_22, 2, __pyx_int_neg_1);
          __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_22, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5067, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_4);
          __pyx_t_4 = 0;
+5068:           max_flow = canal.capacity[flow_dir][starting_point]*cfs_tafd - canal.flow[starting_point]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_capacity); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_22 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_v_flow_dir); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_starting_point, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_22, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_9 = PyNumber_Multiply(__pyx_t_4, __pyx_t_22); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __pyx_t_4 = __Pyx_GetItemInt(__pyx_t_22, __pyx_v_starting_point, int, 1, __Pyx_PyInt_From_int, 0, 1, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_t_22 = PyNumber_Subtract(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5068, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
        __pyx_v_max_flow = __pyx_t_29;
+5069:           for lookback_loc in lookback_range:
        if (unlikely(!__pyx_v_lookback_range)) { __Pyx_RaiseUnboundLocalError("lookback_range"); __PYX_ERR(0, 5069, __pyx_L1_error) }
        if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) {
          __pyx_t_22 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_22); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_22 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5069, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_13 = Py_TYPE(__pyx_t_22)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5069, __pyx_L1_error)
        }
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_22))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_22)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5069, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_22, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5069, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_22)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_22, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5069, __pyx_L1_error)
              #else
              __pyx_t_4 = PySequence_ITEM(__pyx_t_22, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5069, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              #endif
            }
          } else {
            __pyx_t_4 = __pyx_t_13(__pyx_t_22);
            if (unlikely(!__pyx_t_4)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5069, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_4);
          }
          __Pyx_XDECREF_SET(__pyx_v_lookback_loc, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+5070:             max_flow = min(canal.capacity[flow_dir][lookback_loc]*cfs_tafd - canal.flow[lookback_loc], max_flow)
          __pyx_t_29 = __pyx_v_max_flow;
          __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_capacity); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_v_flow_dir); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_8 = PyNumber_Multiply(__pyx_t_4, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = PyNumber_Subtract(__pyx_t_8, __pyx_t_4); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_8 = PyFloat_FromDouble(__pyx_t_29); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_23 = PyObject_RichCompare(__pyx_t_8, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_23); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (__pyx_t_2) {
            __pyx_t_23 = PyFloat_FromDouble(__pyx_t_29); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5070, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_4 = __pyx_t_23;
            __pyx_t_23 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_9);
            __pyx_t_4 = __pyx_t_9;
          }
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_29 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_29 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5070, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_v_max_flow = __pyx_t_29;
+5071:           direct_recovery = min(max(max_flow - paper_recovery, 0.0), direct_recovery)
        __pyx_t_29 = __pyx_v_direct_recovery;
        __pyx_t_15 = 0.0;
        __pyx_t_27 = (__pyx_v_max_flow - __pyx_v_paper_recovery);
        if (((__pyx_t_15 > __pyx_t_27) != 0)) {
          __pyx_t_28 = __pyx_t_15;
        } else {
          __pyx_t_28 = __pyx_t_27;
        }
        __pyx_t_15 = __pyx_t_28;
        if (((__pyx_t_29 < __pyx_t_15) != 0)) {
          __pyx_t_28 = __pyx_t_29;
        } else {
          __pyx_t_28 = __pyx_t_15;
        }
        __pyx_v_direct_recovery = __pyx_t_28;
+5072:           paper_recovery = min(paper_recovery, max_flow)
        __pyx_t_28 = __pyx_v_max_flow;
        __pyx_t_29 = __pyx_v_paper_recovery;
        if (((__pyx_t_28 < __pyx_t_29) != 0)) {
          __pyx_t_15 = __pyx_t_28;
        } else {
          __pyx_t_15 = __pyx_t_29;
        }
        __pyx_v_paper_recovery = __pyx_t_15;
 5073:           #find the % of total 'recovery demand' at each water bank that can be fufilled at this district demand node
+5074:           paper_fractions = {}
        __pyx_t_22 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5074, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_22);
        __Pyx_XDECREF_SET(__pyx_v_paper_fractions, ((PyObject*)__pyx_t_22));
        __pyx_t_22 = 0;
+5075:           committed = 0.0
        __pyx_v_committed = 0.0;
+5076:           for zz in type_list:
        if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5076, __pyx_L1_error) }
        __pyx_t_22 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_22); __pyx_t_12 = 0;
        for (;;) {
          if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_22)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_22, __pyx_t_12); __Pyx_INCREF(__pyx_t_4); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5076, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_22, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5076, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
          __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
          __pyx_t_4 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
+5077:             if type_deliveries[zz] > 0.0:
          __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5077, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_9 = PyObject_RichCompare(__pyx_t_4, __pyx_float_0_0, Py_GT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5077, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5077, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L80;
          }
+5078:               paper_fractions[zz] = min((paper_recovery - committed)/type_deliveries[zz], 1.0)
            __pyx_t_15 = 1.0;
            __pyx_t_9 = PyFloat_FromDouble((__pyx_v_paper_recovery - __pyx_v_committed)); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_23 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_t_4); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_9 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_9, __pyx_t_23, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_2) {
              __pyx_t_8 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5078, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_4 = __pyx_t_8;
              __pyx_t_8 = 0;
            } else {
              __Pyx_INCREF(__pyx_t_23);
              __pyx_t_4 = __pyx_t_23;
            }
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_23 = __pyx_t_4;
            __Pyx_INCREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (unlikely(PyDict_SetItem(__pyx_v_paper_fractions, __pyx_v_zz, __pyx_t_23) < 0)) __PYX_ERR(0, 5078, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
+5079:               committed += min(paper_recovery - committed, type_deliveries[zz])
            __pyx_t_23 = PyFloat_FromDouble(__pyx_v_committed); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_4 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_15 = (__pyx_v_paper_recovery - __pyx_v_committed);
            __pyx_t_9 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_14 = PyObject_RichCompare(__pyx_t_4, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            if (__pyx_t_2) {
              __Pyx_INCREF(__pyx_t_4);
              __pyx_t_8 = __pyx_t_4;
            } else {
              __pyx_t_14 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5079, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              __pyx_t_8 = __pyx_t_14;
              __pyx_t_14 = 0;
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_t_23, __pyx_t_8); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_4); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5079, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __pyx_v_committed = __pyx_t_15;
 5080:             else:
+5081:               paper_fractions[zz] = 0.0
          /*else*/ {
            if (unlikely(PyDict_SetItem(__pyx_v_paper_fractions, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5081, __pyx_L1_error)
+5082:               committed += min(paper_recovery - committed, type_deliveries[zz])
            __pyx_t_4 = PyFloat_FromDouble(__pyx_v_committed); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_15 = (__pyx_v_paper_recovery - __pyx_v_committed);
            __pyx_t_14 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            __pyx_t_9 = PyObject_RichCompare(__pyx_t_8, __pyx_t_14, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            if (__pyx_t_2) {
              __Pyx_INCREF(__pyx_t_8);
              __pyx_t_23 = __pyx_t_8;
            } else {
              __pyx_t_9 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5082, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_23 = __pyx_t_9;
              __pyx_t_9 = 0;
            }
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = PyNumber_InPlaceAdd(__pyx_t_4, __pyx_t_23); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_8); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5082, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_v_committed = __pyx_t_15;
          }
          __pyx_L80:;
+5083:           location_delivery = 0.0
        __pyx_v_location_delivery = 0.0;
+5084:           if committed > 0.0:
        __pyx_t_2 = ((__pyx_v_committed > 0.0) != 0);
        if (__pyx_t_2) {
/* … */
        }
+5085:             if flow_dir == "normal":
          __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5085, __pyx_L1_error)
          __pyx_t_1 = (__pyx_t_2 != 0);
          if (__pyx_t_1) {
/* … */
            goto __pyx_L82;
          }
+5086:               lookback_range = range(starting_point, canal_loc + 1)
            __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_canal_loc, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_23 = PyTuple_New(2); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_23, 0, __pyx_t_22);
            __Pyx_GIVEREF(__pyx_t_8);
            PyTuple_SET_ITEM(__pyx_t_23, 1, __pyx_t_8);
            __pyx_t_22 = 0;
            __pyx_t_8 = 0;
            __pyx_t_8 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_23, NULL); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5086, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_8);
            __pyx_t_8 = 0;
+5087:             elif flow_dir == "reverse":
          __pyx_t_1 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5087, __pyx_L1_error)
          __pyx_t_2 = (__pyx_t_1 != 0);
          if (__pyx_t_2) {
/* … */
          }
          __pyx_L82:;
+5088:                 lookback_range = range(starting_point, canal_loc - 1, -1)
            __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5088, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_23 = __Pyx_PyInt_SubtractObjC(__pyx_v_canal_loc, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5088, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __pyx_t_22 = PyTuple_New(3); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5088, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __Pyx_GIVEREF(__pyx_t_8);
            PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_8);
            __Pyx_GIVEREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_22, 1, __pyx_t_23);
            __Pyx_INCREF(__pyx_int_neg_1);
            __Pyx_GIVEREF(__pyx_int_neg_1);
            PyTuple_SET_ITEM(__pyx_t_22, 2, __pyx_int_neg_1);
            __pyx_t_8 = 0;
            __pyx_t_23 = 0;
            __pyx_t_23 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_22, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5088, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_XDECREF_SET(__pyx_v_lookback_range, __pyx_t_23);
            __pyx_t_23 = 0;
 5089:               #search for waterbanks
+5090:             location_delivery, total_paper = self.delivery_recovery(contract_list, canal, lookback_range, starting_point, paper_fractions, direct_recovery, flow_dir, type_list, priority_list, contract_canal, x.key, dowy, wateryear)
          __pyx_t_22 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delivery_recovery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          if (unlikely(!__pyx_v_lookback_range)) { __Pyx_RaiseUnboundLocalError("lookback_range"); __PYX_ERR(0, 5090, __pyx_L1_error) }
          __pyx_t_8 = __Pyx_PyInt_From_int(__pyx_v_starting_point); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_4 = PyFloat_FromDouble(__pyx_v_direct_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          if (unlikely(!__pyx_v_type_list)) { __Pyx_RaiseUnboundLocalError("type_list"); __PYX_ERR(0, 5090, __pyx_L1_error) }
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_14 = __Pyx_PyInt_From_int(__pyx_v_dowy); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_18 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_22))) {
            __pyx_t_18 = PyMethod_GET_SELF(__pyx_t_22);
            if (likely(__pyx_t_18)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_22);
              __Pyx_INCREF(__pyx_t_18);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_22, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_22)) {
            PyObject *__pyx_temp[14] = {__pyx_t_18, __pyx_v_contract_list, __pyx_v_canal, __pyx_v_lookback_range, __pyx_t_8, __pyx_v_paper_fractions, __pyx_t_4, __pyx_v_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_9, __pyx_t_14, __pyx_t_3};
            __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_22)) {
            PyObject *__pyx_temp[14] = {__pyx_t_18, __pyx_v_contract_list, __pyx_v_canal, __pyx_v_lookback_range, __pyx_t_8, __pyx_v_paper_fractions, __pyx_t_4, __pyx_v_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_t_9, __pyx_t_14, __pyx_t_3};
            __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_22, __pyx_temp+1-__pyx_t_6, 13+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_18); __pyx_t_18 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          } else
          #endif
          {
            __pyx_t_24 = PyTuple_New(13+__pyx_t_6); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            if (__pyx_t_18) {
              __Pyx_GIVEREF(__pyx_t_18); PyTuple_SET_ITEM(__pyx_t_24, 0, __pyx_t_18); __pyx_t_18 = NULL;
            }
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_24, 0+__pyx_t_6, __pyx_v_contract_list);
            __Pyx_INCREF(__pyx_v_canal);
            __Pyx_GIVEREF(__pyx_v_canal);
            PyTuple_SET_ITEM(__pyx_t_24, 1+__pyx_t_6, __pyx_v_canal);
            __Pyx_INCREF(__pyx_v_lookback_range);
            __Pyx_GIVEREF(__pyx_v_lookback_range);
            PyTuple_SET_ITEM(__pyx_t_24, 2+__pyx_t_6, __pyx_v_lookback_range);
            __Pyx_GIVEREF(__pyx_t_8);
            PyTuple_SET_ITEM(__pyx_t_24, 3+__pyx_t_6, __pyx_t_8);
            __Pyx_INCREF(__pyx_v_paper_fractions);
            __Pyx_GIVEREF(__pyx_v_paper_fractions);
            PyTuple_SET_ITEM(__pyx_t_24, 4+__pyx_t_6, __pyx_v_paper_fractions);
            __Pyx_GIVEREF(__pyx_t_4);
            PyTuple_SET_ITEM(__pyx_t_24, 5+__pyx_t_6, __pyx_t_4);
            __Pyx_INCREF(__pyx_v_flow_dir);
            __Pyx_GIVEREF(__pyx_v_flow_dir);
            PyTuple_SET_ITEM(__pyx_t_24, 6+__pyx_t_6, __pyx_v_flow_dir);
            __Pyx_INCREF(__pyx_v_type_list);
            __Pyx_GIVEREF(__pyx_v_type_list);
            PyTuple_SET_ITEM(__pyx_t_24, 7+__pyx_t_6, __pyx_v_type_list);
            __Pyx_INCREF(__pyx_v_priority_list);
            __Pyx_GIVEREF(__pyx_v_priority_list);
            PyTuple_SET_ITEM(__pyx_t_24, 8+__pyx_t_6, __pyx_v_priority_list);
            __Pyx_INCREF(__pyx_v_contract_canal);
            __Pyx_GIVEREF(__pyx_v_contract_canal);
            PyTuple_SET_ITEM(__pyx_t_24, 9+__pyx_t_6, __pyx_v_contract_canal);
            __Pyx_GIVEREF(__pyx_t_9);
            PyTuple_SET_ITEM(__pyx_t_24, 10+__pyx_t_6, __pyx_t_9);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_24, 11+__pyx_t_6, __pyx_t_14);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_24, 12+__pyx_t_6, __pyx_t_3);
            __pyx_t_8 = 0;
            __pyx_t_4 = 0;
            __pyx_t_9 = 0;
            __pyx_t_14 = 0;
            __pyx_t_3 = 0;
            __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_22, __pyx_t_24, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          }
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          if ((likely(PyTuple_CheckExact(__pyx_t_23))) || (PyList_CheckExact(__pyx_t_23))) {
            PyObject* sequence = __pyx_t_23;
            Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
            if (unlikely(size != 2)) {
              if (size > 2) __Pyx_RaiseTooManyValuesError(2);
              else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
              __PYX_ERR(0, 5090, __pyx_L1_error)
            }
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            if (likely(PyTuple_CheckExact(sequence))) {
              __pyx_t_22 = PyTuple_GET_ITEM(sequence, 0); 
              __pyx_t_24 = PyTuple_GET_ITEM(sequence, 1); 
            } else {
              __pyx_t_22 = PyList_GET_ITEM(sequence, 0); 
              __pyx_t_24 = PyList_GET_ITEM(sequence, 1); 
            }
            __Pyx_INCREF(__pyx_t_22);
            __Pyx_INCREF(__pyx_t_24);
            #else
            __pyx_t_22 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            __pyx_t_24 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_24);
            #endif
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          } else {
            Py_ssize_t index = -1;
            __pyx_t_3 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5090, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_3);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __pyx_t_10 = Py_TYPE(__pyx_t_3)->tp_iternext;
            index = 0; __pyx_t_22 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_22)) goto __pyx_L83_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_22);
            index = 1; __pyx_t_24 = __pyx_t_10(__pyx_t_3); if (unlikely(!__pyx_t_24)) goto __pyx_L83_unpacking_failed;
            __Pyx_GOTREF(__pyx_t_24);
            if (__Pyx_IternextUnpackEndCheck(__pyx_t_10(__pyx_t_3), 2) < 0) __PYX_ERR(0, 5090, __pyx_L1_error)
            __pyx_t_10 = NULL;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            goto __pyx_L84_unpacking_done;
            __pyx_L83_unpacking_failed:;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __pyx_t_10 = NULL;
            if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
            __PYX_ERR(0, 5090, __pyx_L1_error)
            __pyx_L84_unpacking_done:;
          }
          __pyx_t_15 = __pyx_PyFloat_AsDouble(__pyx_t_22); if (unlikely((__pyx_t_15 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_24); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5090, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __pyx_v_location_delivery = __pyx_t_15;
          __pyx_v_total_paper = __pyx_t_28;
+5091:             paper_delivery = x.give_paper_trade(total_paper, contract_list, wateryear, x.key)
          __pyx_t_24 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_give_paper_trade); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5091, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_22 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5091, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_22);
          __pyx_t_3 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5091, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5091, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_9 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_24))) {
            __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_24);
            if (likely(__pyx_t_9)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_24);
              __Pyx_INCREF(__pyx_t_9);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_24, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_24)) {
            PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_22, __pyx_v_contract_list, __pyx_t_3, __pyx_t_14};
            __pyx_t_23 = __Pyx_PyFunction_FastCall(__pyx_t_24, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5091, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_24)) {
            PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_t_22, __pyx_v_contract_list, __pyx_t_3, __pyx_t_14};
            __pyx_t_23 = __Pyx_PyCFunction_FastCall(__pyx_t_24, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5091, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          } else
          #endif
          {
            __pyx_t_4 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5091, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            if (__pyx_t_9) {
              __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_9); __pyx_t_9 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_22);
            PyTuple_SET_ITEM(__pyx_t_4, 0+__pyx_t_6, __pyx_t_22);
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_4, 1+__pyx_t_6, __pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_t_3);
            PyTuple_SET_ITEM(__pyx_t_4, 2+__pyx_t_6, __pyx_t_3);
            __Pyx_GIVEREF(__pyx_t_14);
            PyTuple_SET_ITEM(__pyx_t_4, 3+__pyx_t_6, __pyx_t_14);
            __pyx_t_22 = 0;
            __pyx_t_3 = 0;
            __pyx_t_14 = 0;
            __pyx_t_23 = __Pyx_PyObject_Call(__pyx_t_24, __pyx_t_4, NULL); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5091, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          }
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_XDECREF_SET(__pyx_v_paper_delivery, __pyx_t_23);
          __pyx_t_23 = 0;
+5092:             location_delivery -= paper_delivery
          __pyx_t_23 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5092, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_24 = PyNumber_InPlaceSubtract(__pyx_t_23, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5092, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_24); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5092, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __pyx_v_location_delivery = __pyx_t_28;
+5093:             total_paper -= paper_delivery
          __pyx_t_24 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5093, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_23 = PyNumber_InPlaceSubtract(__pyx_t_24, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5093, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5093, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          __pyx_v_total_paper = __pyx_t_28;
+5094:             if x.has_private:
          __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5094, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_23); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5094, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
          if (__pyx_t_2) {
/* … */
          }
+5095:               for city_pump in self.city_list:
            __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5095, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_23);
            if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
              __pyx_t_24 = __pyx_t_23; __Pyx_INCREF(__pyx_t_24); __pyx_t_12 = 0;
              __pyx_t_13 = NULL;
            } else {
              __pyx_t_12 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5095, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_24);
              __pyx_t_13 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5095, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            for (;;) {
              if (likely(!__pyx_t_13)) {
                if (likely(PyList_CheckExact(__pyx_t_24))) {
                  if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_24)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_23 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_23); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5095, __pyx_L1_error)
                  #else
                  __pyx_t_23 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5095, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  #endif
                } else {
                  if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_12); __Pyx_INCREF(__pyx_t_23); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5095, __pyx_L1_error)
                  #else
                  __pyx_t_23 = PySequence_ITEM(__pyx_t_24, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5095, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  #endif
                }
              } else {
                __pyx_t_23 = __pyx_t_13(__pyx_t_24);
                if (unlikely(!__pyx_t_23)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 5095, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_23);
              }
              __Pyx_XDECREF_SET(__pyx_v_city_pump, __pyx_t_23);
              __pyx_t_23 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+5096:                 for yy in city_pump.district_list:
              __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_district_list); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5096, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_23);
              if (likely(PyList_CheckExact(__pyx_t_23)) || PyTuple_CheckExact(__pyx_t_23)) {
                __pyx_t_4 = __pyx_t_23; __Pyx_INCREF(__pyx_t_4); __pyx_t_19 = 0;
                __pyx_t_21 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_23); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5096, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_4);
                __pyx_t_21 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5096, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
              for (;;) {
                if (likely(!__pyx_t_21)) {
                  if (likely(PyList_CheckExact(__pyx_t_4))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_4)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_23 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_19); __Pyx_INCREF(__pyx_t_23); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5096, __pyx_L1_error)
                    #else
                    __pyx_t_23 = PySequence_ITEM(__pyx_t_4, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5096, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_23);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_23 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_19); __Pyx_INCREF(__pyx_t_23); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5096, __pyx_L1_error)
                    #else
                    __pyx_t_23 = PySequence_ITEM(__pyx_t_4, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5096, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_23);
                    #endif
                  }
                } else {
                  __pyx_t_23 = __pyx_t_21(__pyx_t_4);
                  if (unlikely(!__pyx_t_23)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5096, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_23);
                }
                __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_23);
                __pyx_t_23 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5097:                   if yy == x.key:
                __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5097, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_23);
                __pyx_t_14 = PyObject_RichCompare(__pyx_v_yy, __pyx_t_23, Py_EQ); __Pyx_XGOTREF(__pyx_t_14); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5097, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5097, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                if (__pyx_t_2) {
/* … */
                }
+5098:                     paper_delivery = city_pump.give_paper_trade(total_paper, contract_list, wateryear, x.key)
                  __pyx_t_23 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_give_paper_trade); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5098, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_3 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5098, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_22 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5098, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5098, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_8 = NULL;
                  __pyx_t_6 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_23))) {
                    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_23);
                    if (likely(__pyx_t_8)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_23);
                      __Pyx_INCREF(__pyx_t_8);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_23, function);
                      __pyx_t_6 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_23)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_v_contract_list, __pyx_t_22, __pyx_t_9};
                    __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5098, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_23)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_t_3, __pyx_v_contract_list, __pyx_t_22, __pyx_t_9};
                    __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_23, __pyx_temp+1-__pyx_t_6, 4+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5098, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                    __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_18 = PyTuple_New(4+__pyx_t_6); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5098, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_18);
                    if (__pyx_t_8) {
                      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_8); __pyx_t_8 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_3);
                    PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_6, __pyx_t_3);
                    __Pyx_INCREF(__pyx_v_contract_list);
                    __Pyx_GIVEREF(__pyx_v_contract_list);
                    PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_6, __pyx_v_contract_list);
                    __Pyx_GIVEREF(__pyx_t_22);
                    PyTuple_SET_ITEM(__pyx_t_18, 2+__pyx_t_6, __pyx_t_22);
                    __Pyx_GIVEREF(__pyx_t_9);
                    PyTuple_SET_ITEM(__pyx_t_18, 3+__pyx_t_6, __pyx_t_9);
                    __pyx_t_3 = 0;
                    __pyx_t_22 = 0;
                    __pyx_t_9 = 0;
                    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_23, __pyx_t_18, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5098, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __Pyx_DECREF_SET(__pyx_v_paper_delivery, __pyx_t_14);
                  __pyx_t_14 = 0;
+5099:                     location_delivery -= paper_delivery
                  __pyx_t_14 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5099, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __pyx_t_23 = PyNumber_InPlaceSubtract(__pyx_t_14, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5099, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_23); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5099, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_v_location_delivery = __pyx_t_28;
+5100:                     total_paper -= paper_delivery
                  __pyx_t_23 = PyFloat_FromDouble(__pyx_v_total_paper); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5100, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_23, __pyx_v_paper_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5100, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                  __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5100, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_v_total_paper = __pyx_t_28;
 5101: 
+5102:             location_delivery -= x.recalfews_src_direct_delivery(location_delivery, wateryear)
          __pyx_t_24 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_24);
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_recalfews_src_direct_delivery); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_23 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_23);
          __pyx_t_18 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          __pyx_t_9 = NULL;
          __pyx_t_6 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_14))) {
            __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_14);
            if (likely(__pyx_t_9)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_14);
              __Pyx_INCREF(__pyx_t_9);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_14, function);
              __pyx_t_6 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_23, __pyx_t_18};
            __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5102, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_14)) {
            PyObject *__pyx_temp[3] = {__pyx_t_9, __pyx_t_23, __pyx_t_18};
            __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_14, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5102, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
            __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          } else
          #endif
          {
            __pyx_t_22 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5102, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_22);
            if (__pyx_t_9) {
              __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_22, 0, __pyx_t_9); __pyx_t_9 = NULL;
            }
            __Pyx_GIVEREF(__pyx_t_23);
            PyTuple_SET_ITEM(__pyx_t_22, 0+__pyx_t_6, __pyx_t_23);
            __Pyx_GIVEREF(__pyx_t_18);
            PyTuple_SET_ITEM(__pyx_t_22, 1+__pyx_t_6, __pyx_t_18);
            __pyx_t_23 = 0;
            __pyx_t_18 = 0;
            __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_14, __pyx_t_22, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5102, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
          }
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_t_14 = PyNumber_InPlaceSubtract(__pyx_t_24, __pyx_t_4); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_14); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5102, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          __pyx_v_location_delivery = __pyx_t_28;
 5103: 
+5104:             if x.has_private:
          __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_has_private); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5104, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_14);
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_14); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5104, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
          if (__pyx_t_2) {
/* … */
          }
+5105:               for city_pump in self.city_list:
            __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5105, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_14);
            if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
              __pyx_t_4 = __pyx_t_14; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0;
              __pyx_t_13 = NULL;
            } else {
              __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5105, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_4);
              __pyx_t_13 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5105, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
            for (;;) {
              if (likely(!__pyx_t_13)) {
                if (likely(PyList_CheckExact(__pyx_t_4))) {
                  if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_14 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5105, __pyx_L1_error)
                  #else
                  __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5105, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  #endif
                } else {
                  if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_14); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5105, __pyx_L1_error)
                  #else
                  __pyx_t_14 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5105, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_14);
                  #endif
                }
              } else {
                __pyx_t_14 = __pyx_t_13(__pyx_t_4);
                if (unlikely(!__pyx_t_14)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 5105, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_14);
              }
              __Pyx_XDECREF_SET(__pyx_v_city_pump, __pyx_t_14);
              __pyx_t_14 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5106:                 for yy in city_pump.district_list:
              __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_district_list); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5106, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_14);
              if (likely(PyList_CheckExact(__pyx_t_14)) || PyTuple_CheckExact(__pyx_t_14)) {
                __pyx_t_24 = __pyx_t_14; __Pyx_INCREF(__pyx_t_24); __pyx_t_19 = 0;
                __pyx_t_21 = NULL;
              } else {
                __pyx_t_19 = -1; __pyx_t_24 = PyObject_GetIter(__pyx_t_14); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5106, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_24);
                __pyx_t_21 = Py_TYPE(__pyx_t_24)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5106, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
              for (;;) {
                if (likely(!__pyx_t_21)) {
                  if (likely(PyList_CheckExact(__pyx_t_24))) {
                    if (__pyx_t_19 >= PyList_GET_SIZE(__pyx_t_24)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_14 = PyList_GET_ITEM(__pyx_t_24, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5106, __pyx_L1_error)
                    #else
                    __pyx_t_14 = PySequence_ITEM(__pyx_t_24, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5106, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_14);
                    #endif
                  } else {
                    if (__pyx_t_19 >= PyTuple_GET_SIZE(__pyx_t_24)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_14 = PyTuple_GET_ITEM(__pyx_t_24, __pyx_t_19); __Pyx_INCREF(__pyx_t_14); __pyx_t_19++; if (unlikely(0 < 0)) __PYX_ERR(0, 5106, __pyx_L1_error)
                    #else
                    __pyx_t_14 = PySequence_ITEM(__pyx_t_24, __pyx_t_19); __pyx_t_19++; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5106, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_14);
                    #endif
                  }
                } else {
                  __pyx_t_14 = __pyx_t_21(__pyx_t_24);
                  if (unlikely(!__pyx_t_14)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5106, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_14);
                }
                __Pyx_XDECREF_SET(__pyx_v_yy, __pyx_t_14);
                __pyx_t_14 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
+5107:                   if yy == x.key:
                __pyx_t_14 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5107, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_14);
                __pyx_t_22 = PyObject_RichCompare(__pyx_v_yy, __pyx_t_14, Py_EQ); __Pyx_XGOTREF(__pyx_t_22); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5107, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_22); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5107, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                if (__pyx_t_2) {
/* … */
                }
+5108:                     location_delivery -= city_pump.recalfews_src_direct_delivery(location_delivery, wateryear, x.key)
                  __pyx_t_22 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_22)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_22);
                  __pyx_t_18 = __Pyx_PyObject_GetAttrStr(__pyx_v_city_pump, __pyx_n_s_recalfews_src_direct_delivery); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __pyx_t_23 = PyFloat_FromDouble(__pyx_v_location_delivery); if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_23);
                  __pyx_t_9 = __Pyx_PyInt_From_int(__pyx_v_wateryear); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_3);
                  __pyx_t_8 = NULL;
                  __pyx_t_6 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_18))) {
                    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_18);
                    if (likely(__pyx_t_8)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_18);
                      __Pyx_INCREF(__pyx_t_8);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_18, function);
                      __pyx_t_6 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_18)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_23, __pyx_t_9, __pyx_t_3};
                    __pyx_t_14 = __Pyx_PyFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5108, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_18)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_t_23, __pyx_t_9, __pyx_t_3};
                    __pyx_t_14 = __Pyx_PyCFunction_FastCall(__pyx_t_18, __pyx_temp+1-__pyx_t_6, 3+__pyx_t_6); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5108, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_23); __pyx_t_23 = 0;
                    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
                  } else
                  #endif
                  {
                    __pyx_t_17 = PyTuple_New(3+__pyx_t_6); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5108, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    if (__pyx_t_8) {
                      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_8); __pyx_t_8 = NULL;
                    }
                    __Pyx_GIVEREF(__pyx_t_23);
                    PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_6, __pyx_t_23);
                    __Pyx_GIVEREF(__pyx_t_9);
                    PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_6, __pyx_t_9);
                    __Pyx_GIVEREF(__pyx_t_3);
                    PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_6, __pyx_t_3);
                    __pyx_t_23 = 0;
                    __pyx_t_9 = 0;
                    __pyx_t_3 = 0;
                    __pyx_t_14 = __Pyx_PyObject_Call(__pyx_t_18, __pyx_t_17, NULL); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5108, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_14);
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_t_18 = PyNumber_InPlaceSubtract(__pyx_t_22, __pyx_t_14); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_18);
                  __Pyx_DECREF(__pyx_t_22); __pyx_t_22 = 0;
                  __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
                  __pyx_t_28 = __pyx_PyFloat_AsDouble(__pyx_t_18); if (unlikely((__pyx_t_28 == (double)-1) && PyErr_Occurred())) __PYX_ERR(0, 5108, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
                  __pyx_v_location_delivery = __pyx_t_28;
 5109: 
 5110: 	#once all canal nodes have been searched, we can check to make sure the demands aren't bigger than the canal capacity, then adjust our demands	
 5111:     #type_deliveries = canal.capacity_adjust_demand(starting_point, canal_range, flow_dir, type_list)
+5112:     if search_type == 'recovery':
  __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5112, __pyx_L1_error)
  __pyx_t_1 = (__pyx_t_2 != 0);
  if (__pyx_t_1) {
/* … */
  }
+5113:       if canal.recovery_feeder:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_feeder); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5113, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_1 < 0)) __PYX_ERR(0, 5113, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_1) {
/* … */
    }
+5114:         return type_deliveries
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_type_deliveries);
      __pyx_r = __pyx_v_type_deliveries;
      goto __pyx_L0;
 5115:       else:
+5116:         for zz in type_deliveries:
    /*else*/ {
      __pyx_t_7 = 0;
      __pyx_t_4 = __Pyx_dict_iterator(__pyx_v_type_deliveries, 1, ((PyObject *)NULL), (&__pyx_t_12), (&__pyx_t_6)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5116, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF(__pyx_t_5);
      __pyx_t_5 = __pyx_t_4;
      __pyx_t_4 = 0;
      while (1) {
        __pyx_t_20 = __Pyx_dict_iter_next(__pyx_t_5, __pyx_t_12, &__pyx_t_7, &__pyx_t_4, NULL, NULL, __pyx_t_6);
        if (unlikely(__pyx_t_20 == 0)) break;
        if (unlikely(__pyx_t_20 == -1)) __PYX_ERR(0, 5116, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
        __pyx_t_4 = 0;
+5117:           type_deliveries[zz] = 0.0
        if (unlikely(PyDict_SetItem(__pyx_v_type_deliveries, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5117, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5118:         return type_deliveries
      __Pyx_XDECREF(__pyx_r);
      __Pyx_INCREF(__pyx_v_type_deliveries);
      __pyx_r = __pyx_v_type_deliveries;
      goto __pyx_L0;
    }
 5119:     else:
+5120:       return type_deliveries
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_INCREF(__pyx_v_type_deliveries);
    __pyx_r = __pyx_v_type_deliveries;
    goto __pyx_L0;
  }
 5121: 
 5122: 
 5123: 
+5124:   def delivery_recovery(self, contract_list, canal, lookback_range, starting_point, paper_fractions, direct_recovery, flow_dir, type_list, priority_list, contract_canal, delivery_loc_name, dowy, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_89delivery_recovery(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_89delivery_recovery = {"delivery_recovery", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_89delivery_recovery, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_89delivery_recovery(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_contract_list = 0;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_lookback_range = 0;
  PyObject *__pyx_v_starting_point = 0;
  PyObject *__pyx_v_paper_fractions = 0;
  PyObject *__pyx_v_direct_recovery = 0;
  PyObject *__pyx_v_flow_dir = 0;
  PyObject *__pyx_v_type_list = 0;
  PyObject *__pyx_v_priority_list = 0;
  PyObject *__pyx_v_contract_canal = 0;
  PyObject *__pyx_v_delivery_loc_name = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delivery_recovery (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_contract_list,&__pyx_n_s_canal,&__pyx_n_s_lookback_range,&__pyx_n_s_starting_point,&__pyx_n_s_paper_fractions,&__pyx_n_s_direct_recovery,&__pyx_n_s_flow_dir,&__pyx_n_s_type_list,&__pyx_n_s_priority_list,&__pyx_n_s_contract_canal,&__pyx_n_s_delivery_loc_name,&__pyx_n_s_dowy,&__pyx_n_s_wateryear,0};
    PyObject* values[14] = {0,0,0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 14: values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
        CYTHON_FALLTHROUGH;
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 1); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 2); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_lookback_range)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 3); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_starting_point)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 4); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_paper_fractions)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 5); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_direct_recovery)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 6); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_flow_dir)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 7); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 8); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 9); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 10); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_delivery_loc_name)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 11); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 12); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 13:
        if (likely((values[13] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, 13); __PYX_ERR(0, 5124, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "delivery_recovery") < 0)) __PYX_ERR(0, 5124, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 14) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
      values[13] = PyTuple_GET_ITEM(__pyx_args, 13);
    }
    __pyx_v_self = values[0];
    __pyx_v_contract_list = values[1];
    __pyx_v_canal = values[2];
    __pyx_v_lookback_range = values[3];
    __pyx_v_starting_point = values[4];
    __pyx_v_paper_fractions = values[5];
    __pyx_v_direct_recovery = values[6];
    __pyx_v_flow_dir = values[7];
    __pyx_v_type_list = values[8];
    __pyx_v_priority_list = values[9];
    __pyx_v_contract_canal = values[10];
    __pyx_v_delivery_loc_name = values[11];
    __pyx_v_dowy = values[12];
    __pyx_v_wateryear = values[13];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("delivery_recovery", 1, 14, 14, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5124, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.delivery_recovery", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_88delivery_recovery(__pyx_self, __pyx_v_self, __pyx_v_contract_list, __pyx_v_canal, __pyx_v_lookback_range, __pyx_v_starting_point, __pyx_v_paper_fractions, __pyx_v_direct_recovery, __pyx_v_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_delivery_loc_name, __pyx_v_dowy, __pyx_v_wateryear);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_88delivery_recovery(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_contract_list, PyObject *__pyx_v_canal, PyObject *__pyx_v_lookback_range, PyObject *__pyx_v_starting_point, PyObject *__pyx_v_paper_fractions, PyObject *__pyx_v_direct_recovery, PyObject *__pyx_v_flow_dir, PyObject *__pyx_v_type_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_delivery_loc_name, PyObject *__pyx_v_dowy, PyObject *__pyx_v_wateryear) {
  PyObject *__pyx_v_running_type_deliveries = NULL;
  PyObject *__pyx_v_zz = NULL;
  PyObject *__pyx_v_sum_deliveries = NULL;
  PyObject *__pyx_v_lookback_loc = NULL;
  PyObject *__pyx_v_existing_canal_space = NULL;
  PyObject *__pyx_v_backtrack_range = NULL;
  PyObject *__pyx_v_canal_backtrack = NULL;
  PyObject *__pyx_v_new_flow = NULL;
  PyObject *__pyx_v_available_flow = NULL;
  PyObject *__pyx_v_total_paper = NULL;
  long __pyx_v_toggle_district_recharge;
  PyObject *__pyx_v_location_pumpout = NULL;
  PyObject *__pyx_v_recovery_source = NULL;
  PyObject *__pyx_v_search_type = NULL;
  CYTHON_UNUSED PyObject *__pyx_v_max_current_release = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_num_members = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_demand_constraint = NULL;
  PyObject *__pyx_v_deliveries = NULL;
  PyObject *__pyx_v_priority_bank_space = NULL;
  PyObject *__pyx_v_priorities = NULL;
  PyObject *__pyx_v_priority_turnout_adjusted = NULL;
  PyObject *__pyx_v_paper_amount = NULL;
  PyObject *__pyx_v_direct_amount = NULL;
  PyObject *__pyx_v_actual_delivery = NULL;
  PyObject *__pyx_v_max_direct_recovery = NULL;
  long __pyx_v_counter_toggle;
  PyObject *__pyx_v_district_pump = NULL;
  PyObject *__pyx_v_current_recovery = NULL;
  PyObject *__pyx_v_new_flow_dir = NULL;
  PyObject *__pyx_v_new_canal_size = NULL;
  PyObject *__pyx_v_new_prev_canal = NULL;
  PyObject *__pyx_v_new_lookback_range = NULL;
  PyObject *__pyx_v_new_starting_point = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__71)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("delivery_recovery", 0);
  __Pyx_TraceCall("delivery_recovery", __pyx_f[0], 5124, 0, __PYX_ERR(0, 5124, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_direct_recovery);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_XDECREF(__pyx_t_17);
  __Pyx_XDECREF(__pyx_t_19);
  __Pyx_XDECREF(__pyx_t_24);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.delivery_recovery", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_running_type_deliveries);
  __Pyx_XDECREF(__pyx_v_zz);
  __Pyx_XDECREF(__pyx_v_sum_deliveries);
  __Pyx_XDECREF(__pyx_v_lookback_loc);
  __Pyx_XDECREF(__pyx_v_existing_canal_space);
  __Pyx_XDECREF(__pyx_v_backtrack_range);
  __Pyx_XDECREF(__pyx_v_canal_backtrack);
  __Pyx_XDECREF(__pyx_v_new_flow);
  __Pyx_XDECREF(__pyx_v_available_flow);
  __Pyx_XDECREF(__pyx_v_total_paper);
  __Pyx_XDECREF(__pyx_v_location_pumpout);
  __Pyx_XDECREF(__pyx_v_recovery_source);
  __Pyx_XDECREF(__pyx_v_search_type);
  __Pyx_XDECREF(__pyx_v_max_current_release);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_num_members);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_demand_constraint);
  __Pyx_XDECREF(__pyx_v_deliveries);
  __Pyx_XDECREF(__pyx_v_priority_bank_space);
  __Pyx_XDECREF(__pyx_v_priorities);
  __Pyx_XDECREF(__pyx_v_priority_turnout_adjusted);
  __Pyx_XDECREF(__pyx_v_paper_amount);
  __Pyx_XDECREF(__pyx_v_direct_amount);
  __Pyx_XDECREF(__pyx_v_actual_delivery);
  __Pyx_XDECREF(__pyx_v_max_direct_recovery);
  __Pyx_XDECREF(__pyx_v_district_pump);
  __Pyx_XDECREF(__pyx_v_current_recovery);
  __Pyx_XDECREF(__pyx_v_new_flow_dir);
  __Pyx_XDECREF(__pyx_v_new_canal_size);
  __Pyx_XDECREF(__pyx_v_new_prev_canal);
  __Pyx_XDECREF(__pyx_v_new_lookback_range);
  __Pyx_XDECREF(__pyx_v_new_starting_point);
  __Pyx_XDECREF(__pyx_v_direct_recovery);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__133 = PyTuple_Pack(49, __pyx_n_s_self, __pyx_n_s_contract_list, __pyx_n_s_canal, __pyx_n_s_lookback_range, __pyx_n_s_starting_point, __pyx_n_s_paper_fractions, __pyx_n_s_direct_recovery, __pyx_n_s_flow_dir, __pyx_n_s_type_list, __pyx_n_s_priority_list, __pyx_n_s_contract_canal, __pyx_n_s_delivery_loc_name, __pyx_n_s_dowy, __pyx_n_s_wateryear, __pyx_n_s_running_type_deliveries, __pyx_n_s_zz, __pyx_n_s_sum_deliveries, __pyx_n_s_lookback_loc, __pyx_n_s_existing_canal_space, __pyx_n_s_backtrack_range, __pyx_n_s_canal_backtrack, __pyx_n_s_new_flow, __pyx_n_s_available_flow, __pyx_n_s_total_paper, __pyx_n_s_toggle_district_recharge, __pyx_n_s_location_pumpout, __pyx_n_s_recovery_source, __pyx_n_s_search_type, __pyx_n_s_max_current_release, __pyx_n_s_xx, __pyx_n_s_num_members, __pyx_n_s_wb_member, __pyx_n_s_demand_constraint, __pyx_n_s_deliveries, __pyx_n_s_priority_bank_space, __pyx_n_s_priorities, __pyx_n_s_priority_turnout_adjusted, __pyx_n_s_paper_amount, __pyx_n_s_direct_amount, __pyx_n_s_actual_delivery, __pyx_n_s_max_direct_recovery, __pyx_n_s_counter_toggle, __pyx_n_s_district_pump, __pyx_n_s_current_recovery, __pyx_n_s_new_flow_dir, __pyx_n_s_new_canal_size, __pyx_n_s_new_prev_canal, __pyx_n_s_new_lookback_range, __pyx_n_s_new_starting_point); if (unlikely(!__pyx_tuple__133)) __PYX_ERR(0, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__133);
  __Pyx_GIVEREF(__pyx_tuple__133);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_89delivery_recovery, 0, __pyx_n_s_Model_delivery_recovery, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__71)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5124, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_delivery_recovery, __pyx_t_2) < 0) __PYX_ERR(0, 5124, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__71 = (PyObject*)__Pyx_PyCode_New(14, 0, 49, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__133, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_delivery_recovery, 5124, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__71)) __PYX_ERR(0, 5124, __pyx_L1_error)
+5125:     running_type_deliveries = {}
  __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5125, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_running_type_deliveries = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
+5126:     for zz in type_list:
  if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
    __pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5126, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5126, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5126, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5126, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5126, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5126, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5127:       running_type_deliveries[zz] = 0.0
    if (unlikely(PyDict_SetItem(__pyx_v_running_type_deliveries, __pyx_v_zz, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5127, __pyx_L1_error)
 5128: 
+5129:     sum_deliveries = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_sum_deliveries = __pyx_float_0_0;
+5130:     for lookback_loc in lookback_range:
  if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) {
    __pyx_t_1 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5130, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5130, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5130, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5130, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5130, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5130, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_lookback_loc, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5131:       for zz in type_list:
    if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
      __pyx_t_4 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5131, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5131, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5131, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5131, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5131, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5131, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5131, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5132:         running_type_deliveries[zz] += canal.demand[zz][lookback_loc]
      __Pyx_INCREF(__pyx_v_zz);
      __pyx_t_7 = __pyx_v_zz;
      __pyx_t_8 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_8, __pyx_t_9); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_running_type_deliveries, __pyx_t_7, __pyx_t_10) < 0)) __PYX_ERR(0, 5132, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5133:         sum_deliveries += canal.demand[zz][lookback_loc]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_v_sum_deliveries, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5133, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF_SET(__pyx_v_sum_deliveries, __pyx_t_10);
      __pyx_t_10 = 0;
+5134:       existing_canal_space = canal.capacity[flow_dir][lookback_loc]*cfs_tafd - canal.flow[lookback_loc]
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_capacity); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_flow_dir); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_10, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_7 = PyNumber_Multiply(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __pyx_t_10 = PyNumber_Subtract(__pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5134, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_XDECREF_SET(__pyx_v_existing_canal_space, __pyx_t_10);
    __pyx_t_10 = 0;
+5135:       if sum_deliveries > existing_canal_space:
    __pyx_t_10 = PyObject_RichCompare(__pyx_v_sum_deliveries, __pyx_v_existing_canal_space, Py_GT); __Pyx_XGOTREF(__pyx_t_10); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5135, __pyx_L1_error)
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5135, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_11) {
/* … */
    }
+5136:         if flow_dir == "normal":
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_normal, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5136, __pyx_L1_error)
      if (__pyx_t_11) {
/* … */
        goto __pyx_L10;
      }
+5137:           backtrack_range = range(starting_point, lookback_loc + 1)
        __pyx_t_10 = __Pyx_PyInt_AddObjC(__pyx_v_lookback_loc, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_v_starting_point);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_t_10);
        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10);
        __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_backtrack_range, __pyx_t_10);
        __pyx_t_10 = 0;
+5138:         elif flow_dir == "reverse":
      __pyx_t_11 = (__Pyx_PyUnicode_Equals(__pyx_v_flow_dir, __pyx_n_u_reverse, Py_EQ)); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5138, __pyx_L1_error)
      if (__pyx_t_11) {
/* … */
      }
      __pyx_L10:;
+5139:           backtrack_range = range(starting_point, lookback_loc - 1, -1)
        __pyx_t_10 = __Pyx_PyInt_SubtractObjC(__pyx_v_lookback_loc, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_4 = PyTuple_New(3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_v_starting_point);
        PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_v_starting_point);
        __Pyx_GIVEREF(__pyx_t_10);
        PyTuple_SET_ITEM(__pyx_t_4, 1, __pyx_t_10);
        __Pyx_INCREF(__pyx_int_neg_1);
        __Pyx_GIVEREF(__pyx_int_neg_1);
        PyTuple_SET_ITEM(__pyx_t_4, 2, __pyx_int_neg_1);
        __pyx_t_10 = 0;
        __pyx_t_10 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_4, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __Pyx_XDECREF_SET(__pyx_v_backtrack_range, __pyx_t_10);
        __pyx_t_10 = 0;
+5140:         for zz in type_list:
      if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
        __pyx_t_10 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5140, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5140, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_10))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5140, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5140, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5140, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5140, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_6(__pyx_t_10);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5140, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
        __pyx_t_4 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+5141:           for canal_backtrack in backtrack_range:
        if (unlikely(!__pyx_v_backtrack_range)) { __Pyx_RaiseUnboundLocalError("backtrack_range"); __PYX_ERR(0, 5141, __pyx_L1_error) }
        if (likely(PyList_CheckExact(__pyx_v_backtrack_range)) || PyTuple_CheckExact(__pyx_v_backtrack_range)) {
          __pyx_t_4 = __pyx_v_backtrack_range; __Pyx_INCREF(__pyx_t_4); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_backtrack_range); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5141, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_13 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5141, __pyx_L1_error)
        }
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_4))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5141, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5141, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5141, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5141, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_13(__pyx_t_4);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5141, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_canal_backtrack, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5142:             canal.recovery_flow_frac[zz][canal_backtrack] = min(max(min(existing_canal_space/running_type_deliveries[zz], 1.0), 0.0), canal.recovery_flow_frac[zz][canal_backtrack])
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_canal_backtrack); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_14 = 0.0;
          __pyx_t_15 = 1.0;
          __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_8 = __Pyx_PyNumber_Divide(__pyx_v_existing_canal_space, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_16 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_16);
          __pyx_t_17 = PyObject_RichCompare(__pyx_t_16, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          if (__pyx_t_11) {
            __pyx_t_17 = PyFloat_FromDouble(__pyx_t_15); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5142, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_9 = __pyx_t_17;
            __pyx_t_17 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_9 = __pyx_t_8;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_8 = __pyx_t_9;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_17 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_16 = PyObject_RichCompare(__pyx_t_17, __pyx_t_8, Py_GT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (__pyx_t_11) {
            __pyx_t_16 = PyFloat_FromDouble(__pyx_t_14); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5142, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_9 = __pyx_t_16;
            __pyx_t_16 = 0;
          } else {
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_9 = __pyx_t_8;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_INCREF(__pyx_t_9);
          __pyx_t_8 = __pyx_t_9;
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_16 = PyObject_RichCompare(__pyx_t_7, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_16); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_16); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          if (__pyx_t_11) {
            __Pyx_INCREF(__pyx_t_7);
            __pyx_t_9 = __pyx_t_7;
          } else {
            __Pyx_INCREF(__pyx_t_8);
            __pyx_t_9 = __pyx_t_8;
          }
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __pyx_t_9;
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_v_canal_backtrack, __pyx_t_7) < 0)) __PYX_ERR(0, 5142, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5143:           new_flow = min(running_type_deliveries[zz], existing_canal_space)
        __Pyx_INCREF(__pyx_v_existing_canal_space);
        __pyx_t_4 = __pyx_v_existing_canal_space;
        __pyx_t_7 = __Pyx_PyDict_GetItem(__pyx_v_running_type_deliveries, __pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5143, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_9 = PyObject_RichCompare(__pyx_t_4, __pyx_t_7, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5143, __pyx_L1_error)
        __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5143, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        if (__pyx_t_11) {
          __Pyx_INCREF(__pyx_t_4);
          __pyx_t_8 = __pyx_t_4;
        } else {
          __Pyx_INCREF(__pyx_t_7);
          __pyx_t_8 = __pyx_t_7;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = __pyx_t_8;
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_XDECREF_SET(__pyx_v_new_flow, __pyx_t_4);
        __pyx_t_4 = 0;
+5144:           existing_canal_space -= new_flow
        __pyx_t_4 = PyNumber_InPlaceSubtract(__pyx_v_existing_canal_space, __pyx_v_new_flow); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5144, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF_SET(__pyx_v_existing_canal_space, __pyx_t_4);
        __pyx_t_4 = 0;
 5145: 
 5146:     #Loop back through the canal looking for waterbank sources to make paper trades with
+5147:     available_flow = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_available_flow = __pyx_float_0_0;
+5148:     total_paper = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_total_paper = __pyx_float_0_0;
+5149:     toggle_district_recharge = 0
  __pyx_v_toggle_district_recharge = 0;
+5150:     for lookback_loc in lookback_range:
  if (likely(PyList_CheckExact(__pyx_v_lookback_range)) || PyTuple_CheckExact(__pyx_v_lookback_range)) {
    __pyx_t_1 = __pyx_v_lookback_range; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_lookback_range); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5150, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5150, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5150, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5150, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_10); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5150, __pyx_L1_error)
        #else
        __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5150, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        #endif
      }
    } else {
      __pyx_t_10 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_10)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5150, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_10);
    }
    __Pyx_XDECREF_SET(__pyx_v_lookback_loc, __pyx_t_10);
    __pyx_t_10 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5151:       location_pumpout = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_location_pumpout, __pyx_float_0_0);
+5152:       recovery_source = self.canal_district[canal.name][lookback_loc]
    __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_t_4); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5152, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_XDECREF_SET(__pyx_v_recovery_source, __pyx_t_4);
    __pyx_t_4 = 0;
+5153:       search_type = "recovery"
    __Pyx_INCREF(__pyx_n_u_recovery);
    __Pyx_XDECREF_SET(__pyx_v_search_type, __pyx_n_u_recovery);
+5154:       max_current_release = 0.0
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_XDECREF_SET(__pyx_v_max_current_release, __pyx_float_0_0);
+5155:       for zz in type_list:
    if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
      __pyx_t_4 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
      __pyx_t_6 = NULL;
    } else {
      __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5155, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5155, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_6)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5155, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5155, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        } else {
          if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_8); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5155, __pyx_L1_error)
          #else
          __pyx_t_8 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5155, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          #endif
        }
      } else {
        __pyx_t_8 = __pyx_t_6(__pyx_t_4);
        if (unlikely(!__pyx_t_8)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5155, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_8);
      }
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_8);
      __pyx_t_8 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5156:         max_current_release = canal.demand[zz][lookback_loc]*canal.recovery_flow_frac[zz][lookback_loc]
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_zz); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = PyNumber_Multiply(__pyx_t_8, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5156, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF_SET(__pyx_v_max_current_release, __pyx_t_7);
      __pyx_t_7 = 0;
+5157:       if recovery_source.is_District == 1:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_District); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5157, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5157, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_11) {
/* … */
      goto __pyx_L19;
    }
+5158:         if recovery_source.in_leiu_banking:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5158, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5158, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_11) {
/* … */
      }
+5159:           for xx in recovery_source.participant_list:
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5159, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
          __pyx_t_6 = NULL;
        } else {
          __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5159, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5159, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_6)) {
            if (likely(PyList_CheckExact(__pyx_t_4))) {
              if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5159, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5159, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5159, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5159, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_6(__pyx_t_4);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5159, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5160:             num_members = self.district_keys_len[xx]
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5160, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5160, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_XDECREF_SET(__pyx_v_num_members, __pyx_t_10);
          __pyx_t_10 = 0;
+5161:             if xx != recovery_source.key:
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_key); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5161, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_7 = PyObject_RichCompare(__pyx_v_xx, __pyx_t_10, Py_NE); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5161, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5161, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          if (__pyx_t_11) {
/* … */
          }
+5162:               for wb_member in self.district_keys[xx]:
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5162, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5162, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_10);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            if (likely(PyList_CheckExact(__pyx_t_10)) || PyTuple_CheckExact(__pyx_t_10)) {
              __pyx_t_7 = __pyx_t_10; __Pyx_INCREF(__pyx_t_7); __pyx_t_12 = 0;
              __pyx_t_13 = NULL;
            } else {
              __pyx_t_12 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5162, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              __pyx_t_13 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5162, __pyx_L1_error)
            }
            __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
            for (;;) {
              if (likely(!__pyx_t_13)) {
                if (likely(PyList_CheckExact(__pyx_t_7))) {
                  if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_7)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_10 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5162, __pyx_L1_error)
                  #else
                  __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5162, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_10);
                  #endif
                } else {
                  if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                  #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                  __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_12); __Pyx_INCREF(__pyx_t_10); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5162, __pyx_L1_error)
                  #else
                  __pyx_t_10 = PySequence_ITEM(__pyx_t_7, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5162, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_10);
                  #endif
                }
              } else {
                __pyx_t_10 = __pyx_t_13(__pyx_t_7);
                if (unlikely(!__pyx_t_10)) {
                  PyObject* exc_type = PyErr_Occurred();
                  if (exc_type) {
                    if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                    else __PYX_ERR(0, 5162, __pyx_L1_error)
                  }
                  break;
                }
                __Pyx_GOTREF(__pyx_t_10);
              }
              __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_10);
              __pyx_t_10 = 0;
/* … */
            }
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 5163:                 #find waterbank partner demand (i.e., recovery capacity of their ownership share)
+5164:                 demand_constraint = recovery_source.find_node_output()
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5164, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_9 = NULL;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
                __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
                if (likely(__pyx_t_9)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                  __Pyx_INCREF(__pyx_t_9);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_8, function);
                }
              }
              __pyx_t_10 = (__pyx_t_9) ? __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_9) : __Pyx_PyObject_CallNoArg(__pyx_t_8);
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5164, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_demand_constraint, __pyx_t_10);
              __pyx_t_10 = 0;
 5165:                 #does this partner want recovery water?
+5166:                 deliveries = wb_member.set_request_constraints(demand_constraint, search_type, contract_list, recovery_source.inleiubanked[xx], recovery_source.inleiucap[xx], dowy, wateryear)
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5166, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5166, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5166, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5166, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_xx); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5166, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __pyx_t_9 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
                __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
                if (likely(__pyx_t_9)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                  __Pyx_INCREF(__pyx_t_9);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_8, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_16, __pyx_t_17, __pyx_v_dowy, __pyx_v_wateryear};
                __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5166, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[8] = {__pyx_t_9, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_16, __pyx_t_17, __pyx_v_dowy, __pyx_v_wateryear};
                __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5166, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              } else
              #endif
              {
                __pyx_t_19 = PyTuple_New(7+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5166, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                if (__pyx_t_9) {
                  __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_9); __pyx_t_9 = NULL;
                }
                __Pyx_INCREF(__pyx_v_demand_constraint);
                __Pyx_GIVEREF(__pyx_v_demand_constraint);
                PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_18, __pyx_v_demand_constraint);
                __Pyx_INCREF(__pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_v_search_type);
                PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_18, __pyx_v_search_type);
                __Pyx_INCREF(__pyx_v_contract_list);
                __Pyx_GIVEREF(__pyx_v_contract_list);
                PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_18, __pyx_v_contract_list);
                __Pyx_GIVEREF(__pyx_t_16);
                PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_18, __pyx_t_16);
                __Pyx_GIVEREF(__pyx_t_17);
                PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_18, __pyx_t_17);
                __Pyx_INCREF(__pyx_v_dowy);
                __Pyx_GIVEREF(__pyx_v_dowy);
                PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_18, __pyx_v_dowy);
                __Pyx_INCREF(__pyx_v_wateryear);
                __Pyx_GIVEREF(__pyx_v_wateryear);
                PyTuple_SET_ITEM(__pyx_t_19, 6+__pyx_t_18, __pyx_v_wateryear);
                __pyx_t_16 = 0;
                __pyx_t_17 = 0;
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5166, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_deliveries, __pyx_t_10);
              __pyx_t_10 = 0;
 5167:                 #what is their priority over the water/canal space?
+5168:                 priority_bank_space = recovery_source.find_leiu_priority_space(demand_constraint, num_members, xx, 0, search_type)
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5168, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_19 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
                __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_8);
                if (likely(__pyx_t_19)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                  __Pyx_INCREF(__pyx_t_19);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_8, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[6] = {__pyx_t_19, __pyx_v_demand_constraint, __pyx_v_num_members, __pyx_v_xx, __pyx_int_0, __pyx_v_search_type};
                __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 5+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5168, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_GOTREF(__pyx_t_10);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[6] = {__pyx_t_19, __pyx_v_demand_constraint, __pyx_v_num_members, __pyx_v_xx, __pyx_int_0, __pyx_v_search_type};
                __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 5+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5168, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_GOTREF(__pyx_t_10);
              } else
              #endif
              {
                __pyx_t_17 = PyTuple_New(5+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5168, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                if (__pyx_t_19) {
                  __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_19); __pyx_t_19 = NULL;
                }
                __Pyx_INCREF(__pyx_v_demand_constraint);
                __Pyx_GIVEREF(__pyx_v_demand_constraint);
                PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_18, __pyx_v_demand_constraint);
                __Pyx_INCREF(__pyx_v_num_members);
                __Pyx_GIVEREF(__pyx_v_num_members);
                PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_18, __pyx_v_num_members);
                __Pyx_INCREF(__pyx_v_xx);
                __Pyx_GIVEREF(__pyx_v_xx);
                PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_18, __pyx_v_xx);
                __Pyx_INCREF(__pyx_int_0);
                __Pyx_GIVEREF(__pyx_int_0);
                PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_18, __pyx_int_0);
                __Pyx_INCREF(__pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_v_search_type);
                PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_18, __pyx_v_search_type);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_17, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5168, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_priority_bank_space, __pyx_t_10);
              __pyx_t_10 = 0;
 5169: 
+5170:                 priorities = recovery_source.set_demand_priority("N/A", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A")
              __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5170, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_8);
              __pyx_t_17 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
                __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_8);
                if (likely(__pyx_t_17)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
                  __Pyx_INCREF(__pyx_t_17);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_8, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_kp_u_N_A};
                __pyx_t_10 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5170, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_GOTREF(__pyx_t_10);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
                PyObject *__pyx_temp[8] = {__pyx_t_17, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_kp_u_N_A};
                __pyx_t_10 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5170, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_GOTREF(__pyx_t_10);
              } else
              #endif
              {
                __pyx_t_19 = PyTuple_New(7+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5170, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                if (__pyx_t_17) {
                  __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_17); __pyx_t_17 = NULL;
                }
                __Pyx_INCREF(__pyx_kp_u_N_A);
                __Pyx_GIVEREF(__pyx_kp_u_N_A);
                PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_18, __pyx_kp_u_N_A);
                __Pyx_INCREF(__pyx_kp_u_N_A);
                __Pyx_GIVEREF(__pyx_kp_u_N_A);
                PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_18, __pyx_kp_u_N_A);
                __Pyx_INCREF(__pyx_v_priority_bank_space);
                __Pyx_GIVEREF(__pyx_v_priority_bank_space);
                PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_18, __pyx_v_priority_bank_space);
                __Pyx_INCREF(__pyx_v_deliveries);
                __Pyx_GIVEREF(__pyx_v_deliveries);
                PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_18, __pyx_v_deliveries);
                __Pyx_INCREF(__pyx_v_demand_constraint);
                __Pyx_GIVEREF(__pyx_v_demand_constraint);
                PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_18, __pyx_v_demand_constraint);
                __Pyx_INCREF(__pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_v_search_type);
                PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_18, __pyx_v_search_type);
                __Pyx_INCREF(__pyx_kp_u_N_A);
                __Pyx_GIVEREF(__pyx_kp_u_N_A);
                PyTuple_SET_ITEM(__pyx_t_19, 6+__pyx_t_18, __pyx_kp_u_N_A);
                __pyx_t_10 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_19, NULL); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5170, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              }
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              __Pyx_XDECREF_SET(__pyx_v_priorities, __pyx_t_10);
              __pyx_t_10 = 0;
+5171:                 priority_turnout_adjusted = {}
              __pyx_t_10 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5171, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_10));
              __pyx_t_10 = 0;
 5172:                 #need to adjust the water request to account for the banking partner share of the turnout
+5173:                 for zz in type_list:
              if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
                __pyx_t_10 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_20 = 0;
                __pyx_t_21 = NULL;
              } else {
                __pyx_t_20 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5173, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_21 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5173, __pyx_L1_error)
              }
              for (;;) {
                if (likely(!__pyx_t_21)) {
                  if (likely(PyList_CheckExact(__pyx_t_10))) {
                    if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_10)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_8 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_20); __Pyx_INCREF(__pyx_t_8); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5173, __pyx_L1_error)
                    #else
                    __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5173, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    #endif
                  } else {
                    if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_8 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_20); __Pyx_INCREF(__pyx_t_8); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5173, __pyx_L1_error)
                    #else
                    __pyx_t_8 = PySequence_ITEM(__pyx_t_10, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5173, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    #endif
                  }
                } else {
                  __pyx_t_8 = __pyx_t_21(__pyx_t_10);
                  if (unlikely(!__pyx_t_8)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5173, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_8);
                }
                __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_8);
                __pyx_t_8 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+5174:                   priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][lookback_loc]
                __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = PyNumber_Multiply(__pyx_t_8, __pyx_t_19); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz, __pyx_t_17) < 0)) __PYX_ERR(0, 5174, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5175:                 for zz in type_list:
              if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
                __pyx_t_10 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_10); __pyx_t_20 = 0;
                __pyx_t_21 = NULL;
              } else {
                __pyx_t_20 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5175, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_10);
                __pyx_t_21 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5175, __pyx_L1_error)
              }
              for (;;) {
                if (likely(!__pyx_t_21)) {
                  if (likely(PyList_CheckExact(__pyx_t_10))) {
                    if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_10)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_17 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_20); __Pyx_INCREF(__pyx_t_17); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5175, __pyx_L1_error)
                    #else
                    __pyx_t_17 = PySequence_ITEM(__pyx_t_10, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5175, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    #endif
                  } else {
                    if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_20); __Pyx_INCREF(__pyx_t_17); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5175, __pyx_L1_error)
                    #else
                    __pyx_t_17 = PySequence_ITEM(__pyx_t_10, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5175, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    #endif
                  }
                } else {
                  __pyx_t_17 = __pyx_t_21(__pyx_t_10);
                  if (unlikely(!__pyx_t_17)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5175, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_17);
                }
                __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_17);
                __pyx_t_17 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 5176:                   #paper trade recovery is equal to 
+5177:                   paper_amount = priority_turnout_adjusted[zz]*min(paper_fractions[zz], canal.recovery_flow_frac[zz][lookback_loc])
                __pyx_t_17 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_paper_fractions, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_8);
                __pyx_t_9 = PyObject_RichCompare(__pyx_t_19, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                if (__pyx_t_11) {
                  __Pyx_INCREF(__pyx_t_19);
                  __pyx_t_16 = __pyx_t_19;
                } else {
                  __Pyx_INCREF(__pyx_t_8);
                  __pyx_t_16 = __pyx_t_8;
                }
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_19 = PyNumber_Multiply(__pyx_t_17, __pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5177, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_XDECREF_SET(__pyx_v_paper_amount, __pyx_t_19);
                __pyx_t_19 = 0;
+5178:                   direct_amount = min(direct_recovery, priority_turnout_adjusted[zz]*canal.recovery_flow_frac[zz][lookback_loc] - paper_amount)
                __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __pyx_t_17 = PyNumber_Multiply(__pyx_t_19, __pyx_t_16); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_16 = PyNumber_Subtract(__pyx_t_17, __pyx_v_paper_amount); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_INCREF(__pyx_v_direct_recovery);
                __pyx_t_17 = __pyx_v_direct_recovery;
                __pyx_t_8 = PyObject_RichCompare(__pyx_t_16, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5178, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                if (__pyx_t_11) {
                  __Pyx_INCREF(__pyx_t_16);
                  __pyx_t_19 = __pyx_t_16;
                } else {
                  __Pyx_INCREF(__pyx_t_17);
                  __pyx_t_19 = __pyx_t_17;
                }
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_16 = __pyx_t_19;
                __Pyx_INCREF(__pyx_t_16);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_XDECREF_SET(__pyx_v_direct_amount, __pyx_t_16);
                __pyx_t_16 = 0;
+5179:                   recovery_source.adjust_recovery(paper_amount, xx, wateryear)
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5179, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_17 = NULL;
                __pyx_t_18 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
                  __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_19);
                  if (likely(__pyx_t_17)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
                    __Pyx_INCREF(__pyx_t_17);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_19, function);
                    __pyx_t_18 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_19)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_17, __pyx_v_paper_amount, __pyx_v_xx, __pyx_v_wateryear};
                  __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5179, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_GOTREF(__pyx_t_16);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_17, __pyx_v_paper_amount, __pyx_v_xx, __pyx_v_wateryear};
                  __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5179, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_GOTREF(__pyx_t_16);
                } else
                #endif
                {
                  __pyx_t_8 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5179, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  if (__pyx_t_17) {
                    __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_17); __pyx_t_17 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_paper_amount);
                  __Pyx_GIVEREF(__pyx_v_paper_amount);
                  PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_paper_amount);
                  __Pyx_INCREF(__pyx_v_xx);
                  __Pyx_GIVEREF(__pyx_v_xx);
                  PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_xx);
                  __Pyx_INCREF(__pyx_v_wateryear);
                  __Pyx_GIVEREF(__pyx_v_wateryear);
                  PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_wateryear);
                  __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_8, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5179, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                }
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+5180:                   location_pumpout += paper_amount
                __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_paper_amount); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5180, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_16);
                __pyx_t_16 = 0;
+5181:                   actual_delivery = 0.0
                __Pyx_INCREF(__pyx_float_0_0);
                __Pyx_XDECREF_SET(__pyx_v_actual_delivery, __pyx_float_0_0);
+5182:                   if delivery_loc_name == wb_member.key:
                __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5182, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                __pyx_t_19 = PyObject_RichCompare(__pyx_v_delivery_loc_name, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5182, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5182, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                if (__pyx_t_11) {
/* … */
                  goto __pyx_L30;
                }
+5183:                     demand_constraint = recovery_source.find_node_output()
                  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5183, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __pyx_t_8 = NULL;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
                    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_16);
                    if (likely(__pyx_t_8)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                      __Pyx_INCREF(__pyx_t_8);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_16, function);
                    }
                  }
                  __pyx_t_19 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_16);
                  __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                  if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5183, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF_SET(__pyx_v_demand_constraint, __pyx_t_19);
                  __pyx_t_19 = 0;
+5184:                     max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.inleiubanked[xx]/num_members)
                  __Pyx_INCREF(__pyx_v_direct_amount);
                  __pyx_t_19 = __pyx_v_direct_amount;
                  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_v_num_members); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_INCREF(__pyx_v_demand_constraint);
                  __pyx_t_8 = __pyx_v_demand_constraint;
                  __pyx_t_9 = PyObject_RichCompare(__pyx_t_19, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  if (__pyx_t_11) {
                    __Pyx_INCREF(__pyx_t_19);
                    __pyx_t_17 = __pyx_t_19;
                  } else {
                    __Pyx_INCREF(__pyx_t_8);
                    __pyx_t_17 = __pyx_t_8;
                  }
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_INCREF(__pyx_t_17);
                  __pyx_t_8 = __pyx_t_17;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __pyx_t_9 = PyObject_RichCompare(__pyx_t_16, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_9); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_9); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5184, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  if (__pyx_t_11) {
                    __Pyx_INCREF(__pyx_t_16);
                    __pyx_t_17 = __pyx_t_16;
                  } else {
                    __Pyx_INCREF(__pyx_t_8);
                    __pyx_t_17 = __pyx_t_8;
                  }
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                  __pyx_t_19 = __pyx_t_17;
                  __Pyx_INCREF(__pyx_t_19);
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_19);
                  __pyx_t_19 = 0;
+5185:                     actual_delivery = wb_member.direct_delivery_bank(max_direct_recovery, wateryear)
                  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5185, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_16 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17);
                    if (likely(__pyx_t_16)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                      __Pyx_INCREF(__pyx_t_16);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_17, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5185, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5185, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  {
                    __pyx_t_8 = PyTuple_New(2+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5185, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    if (__pyx_t_16) {
                      __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16); __pyx_t_16 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_max_direct_recovery);
                    __Pyx_GIVEREF(__pyx_v_max_direct_recovery);
                    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_max_direct_recovery);
                    __Pyx_INCREF(__pyx_v_wateryear);
                    __Pyx_GIVEREF(__pyx_v_wateryear);
                    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_wateryear);
                    __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_8, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5185, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_19);
                    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF_SET(__pyx_v_actual_delivery, __pyx_t_19);
                  __pyx_t_19 = 0;
+5186:                     direct_recovery -= actual_delivery
                  __pyx_t_19 = PyNumber_InPlaceSubtract(__pyx_v_direct_recovery, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5186, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_DECREF_SET(__pyx_v_direct_recovery, __pyx_t_19);
                  __pyx_t_19 = 0;
+5187:                     recovery_source.adjust_recovery(actual_delivery, xx, wateryear)
                  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5187, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_8 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
                    if (likely(__pyx_t_8)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                      __Pyx_INCREF(__pyx_t_8);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_17, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5187, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5187, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  {
                    __pyx_t_16 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5187, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_16);
                    if (__pyx_t_8) {
                      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_8); __pyx_t_8 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_actual_delivery);
                    __Pyx_GIVEREF(__pyx_v_actual_delivery);
                    PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_actual_delivery);
                    __Pyx_INCREF(__pyx_v_xx);
                    __Pyx_GIVEREF(__pyx_v_xx);
                    PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_xx);
                    __Pyx_INCREF(__pyx_v_wateryear);
                    __Pyx_GIVEREF(__pyx_v_wateryear);
                    PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_wateryear);
                    __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_16, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5187, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_19);
                    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5188:                     location_pumpout += actual_delivery
                  __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5188, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_19);
                  __pyx_t_19 = 0;
+5189:                   elif wb_member.is_Private == 1:
                __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5189, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_17 = __Pyx_PyInt_EqObjC(__pyx_t_19, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5189, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5189, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                if (__pyx_t_11) {
/* … */
                  goto __pyx_L30;
                }
+5190:                     counter_toggle = 0
                  __pyx_v_counter_toggle = 0;
+5191:                     for district_pump in wb_member.district_list:
                  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_district_list); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5191, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  if (likely(PyList_CheckExact(__pyx_t_17)) || PyTuple_CheckExact(__pyx_t_17)) {
                    __pyx_t_19 = __pyx_t_17; __Pyx_INCREF(__pyx_t_19); __pyx_t_22 = 0;
                    __pyx_t_23 = NULL;
                  } else {
                    __pyx_t_22 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5191, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_19);
                    __pyx_t_23 = Py_TYPE(__pyx_t_19)->tp_iternext; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5191, __pyx_L1_error)
                  }
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  for (;;) {
                    if (likely(!__pyx_t_23)) {
                      if (likely(PyList_CheckExact(__pyx_t_19))) {
                        if (__pyx_t_22 >= PyList_GET_SIZE(__pyx_t_19)) break;
                        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                        __pyx_t_17 = PyList_GET_ITEM(__pyx_t_19, __pyx_t_22); __Pyx_INCREF(__pyx_t_17); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 5191, __pyx_L1_error)
                        #else
                        __pyx_t_17 = PySequence_ITEM(__pyx_t_19, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5191, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_17);
                        #endif
                      } else {
                        if (__pyx_t_22 >= PyTuple_GET_SIZE(__pyx_t_19)) break;
                        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                        __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_22); __Pyx_INCREF(__pyx_t_17); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 5191, __pyx_L1_error)
                        #else
                        __pyx_t_17 = PySequence_ITEM(__pyx_t_19, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5191, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_17);
                        #endif
                      }
                    } else {
                      __pyx_t_17 = __pyx_t_23(__pyx_t_19);
                      if (unlikely(!__pyx_t_17)) {
                        PyObject* exc_type = PyErr_Occurred();
                        if (exc_type) {
                          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                          else __PYX_ERR(0, 5191, __pyx_L1_error)
                        }
                        break;
                      }
                      __Pyx_GOTREF(__pyx_t_17);
                    }
                    __Pyx_XDECREF_SET(__pyx_v_district_pump, __pyx_t_17);
                    __pyx_t_17 = 0;
/* … */
                  }
                  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5192:                       if delivery_loc_name == district_pump:
                    __pyx_t_17 = PyObject_RichCompare(__pyx_v_delivery_loc_name, __pyx_v_district_pump, Py_EQ); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5192, __pyx_L1_error)
                    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5192, __pyx_L1_error)
                    __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                    if (__pyx_t_11) {
/* … */
                    }
+5193:                         demand_constraint = recovery_source.find_node_output()
                      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5193, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_16);
                      __pyx_t_8 = NULL;
                      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
                        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_16);
                        if (likely(__pyx_t_8)) {
                          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                          __Pyx_INCREF(__pyx_t_8);
                          __Pyx_INCREF(function);
                          __Pyx_DECREF_SET(__pyx_t_16, function);
                        }
                      }
                      __pyx_t_17 = (__pyx_t_8) ? __Pyx_PyObject_CallOneArg(__pyx_t_16, __pyx_t_8) : __Pyx_PyObject_CallNoArg(__pyx_t_16);
                      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                      if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5193, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_17);
                      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                      __Pyx_DECREF_SET(__pyx_v_demand_constraint, __pyx_t_17);
                      __pyx_t_17 = 0;
+5194:                         max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.inleiubanked[xx]/num_members)
                      __Pyx_INCREF(__pyx_v_direct_amount);
                      __pyx_t_17 = __pyx_v_direct_amount;
                      __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_16);
                      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_8);
                      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                      __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_v_num_members); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_16);
                      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                      __Pyx_INCREF(__pyx_v_demand_constraint);
                      __pyx_t_8 = __pyx_v_demand_constraint;
                      __pyx_t_24 = PyObject_RichCompare(__pyx_t_17, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                      if (__pyx_t_11) {
                        __Pyx_INCREF(__pyx_t_17);
                        __pyx_t_9 = __pyx_t_17;
                      } else {
                        __Pyx_INCREF(__pyx_t_8);
                        __pyx_t_9 = __pyx_t_8;
                      }
                      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                      __Pyx_INCREF(__pyx_t_9);
                      __pyx_t_8 = __pyx_t_9;
                      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                      __pyx_t_24 = PyObject_RichCompare(__pyx_t_16, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5194, __pyx_L1_error)
                      __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                      if (__pyx_t_11) {
                        __Pyx_INCREF(__pyx_t_16);
                        __pyx_t_9 = __pyx_t_16;
                      } else {
                        __Pyx_INCREF(__pyx_t_8);
                        __pyx_t_9 = __pyx_t_8;
                      }
                      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                      __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                      __pyx_t_17 = __pyx_t_9;
                      __Pyx_INCREF(__pyx_t_17);
                      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                      __Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_17);
                      __pyx_t_17 = 0;
+5195:                         actual_delivery = wb_member.direct_delivery_bank(max_direct_recovery, wateryear, district_pump)
                      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5195, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_9);
                      __pyx_t_16 = NULL;
                      __pyx_t_18 = 0;
                      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                        __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_9);
                        if (likely(__pyx_t_16)) {
                          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                          __Pyx_INCREF(__pyx_t_16);
                          __Pyx_INCREF(function);
                          __Pyx_DECREF_SET(__pyx_t_9, function);
                          __pyx_t_18 = 1;
                        }
                      }
                      #if CYTHON_FAST_PYCALL
                      if (PyFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear, __pyx_v_district_pump};
                        __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5195, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      #if CYTHON_FAST_PYCCALL
                      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear, __pyx_v_district_pump};
                        __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5195, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      {
                        __pyx_t_8 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5195, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_8);
                        if (__pyx_t_16) {
                          __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16); __pyx_t_16 = NULL;
                        }
                        __Pyx_INCREF(__pyx_v_max_direct_recovery);
                        __Pyx_GIVEREF(__pyx_v_max_direct_recovery);
                        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_max_direct_recovery);
                        __Pyx_INCREF(__pyx_v_wateryear);
                        __Pyx_GIVEREF(__pyx_v_wateryear);
                        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_wateryear);
                        __Pyx_INCREF(__pyx_v_district_pump);
                        __Pyx_GIVEREF(__pyx_v_district_pump);
                        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_district_pump);
                        __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5195, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_17);
                        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                      }
                      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                      __Pyx_DECREF_SET(__pyx_v_actual_delivery, __pyx_t_17);
                      __pyx_t_17 = 0;
+5196:                         direct_recovery -= actual_delivery
                      __pyx_t_17 = PyNumber_InPlaceSubtract(__pyx_v_direct_recovery, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5196, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_17);
                      __Pyx_DECREF_SET(__pyx_v_direct_recovery, __pyx_t_17);
                      __pyx_t_17 = 0;
+5197:                         recovery_source.adjust_recovery(actual_delivery, xx, wateryear)
                      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5197, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_9);
                      __pyx_t_8 = NULL;
                      __pyx_t_18 = 0;
                      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                        __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
                        if (likely(__pyx_t_8)) {
                          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                          __Pyx_INCREF(__pyx_t_8);
                          __Pyx_INCREF(function);
                          __Pyx_DECREF_SET(__pyx_t_9, function);
                          __pyx_t_18 = 1;
                        }
                      }
                      #if CYTHON_FAST_PYCALL
                      if (PyFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                        __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5197, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      #if CYTHON_FAST_PYCCALL
                      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                        __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5197, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      {
                        __pyx_t_16 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5197, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_16);
                        if (__pyx_t_8) {
                          __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_8); __pyx_t_8 = NULL;
                        }
                        __Pyx_INCREF(__pyx_v_actual_delivery);
                        __Pyx_GIVEREF(__pyx_v_actual_delivery);
                        PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_actual_delivery);
                        __Pyx_INCREF(__pyx_v_xx);
                        __Pyx_GIVEREF(__pyx_v_xx);
                        PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_xx);
                        __Pyx_INCREF(__pyx_v_wateryear);
                        __Pyx_GIVEREF(__pyx_v_wateryear);
                        PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_wateryear);
                        __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_16, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5197, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_17);
                        __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                      }
                      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5198:                         location_pumpout += actual_delivery
                      __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5198, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_17);
                      __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_17);
                      __pyx_t_17 = 0;
+5199:                         counter_toggle = 1
                      __pyx_v_counter_toggle = 1;
+5200:                       if counter_toggle == 0:
                    __pyx_t_11 = ((__pyx_v_counter_toggle == 0) != 0);
                    if (__pyx_t_11) {
/* … */
                    }
+5201:                         wb_member.get_paper_trade(paper_amount, contract_list, wateryear)
                      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5201, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_9);
                      __pyx_t_16 = NULL;
                      __pyx_t_18 = 0;
                      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                        __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_9);
                        if (likely(__pyx_t_16)) {
                          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                          __Pyx_INCREF(__pyx_t_16);
                          __Pyx_INCREF(function);
                          __Pyx_DECREF_SET(__pyx_t_9, function);
                          __pyx_t_18 = 1;
                        }
                      }
                      #if CYTHON_FAST_PYCALL
                      if (PyFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                        __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5201, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      #if CYTHON_FAST_PYCCALL
                      if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                        PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                        __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5201, __pyx_L1_error)
                        __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                        __Pyx_GOTREF(__pyx_t_17);
                      } else
                      #endif
                      {
                        __pyx_t_8 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5201, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_8);
                        if (__pyx_t_16) {
                          __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16); __pyx_t_16 = NULL;
                        }
                        __Pyx_INCREF(__pyx_v_paper_amount);
                        __Pyx_GIVEREF(__pyx_v_paper_amount);
                        PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_paper_amount);
                        __Pyx_INCREF(__pyx_v_contract_list);
                        __Pyx_GIVEREF(__pyx_v_contract_list);
                        PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_contract_list);
                        __Pyx_INCREF(__pyx_v_wateryear);
                        __Pyx_GIVEREF(__pyx_v_wateryear);
                        PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_wateryear);
                        __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5201, __pyx_L1_error)
                        __Pyx_GOTREF(__pyx_t_17);
                        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                      }
                      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                      __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5202:                         total_paper += paper_amount
                      __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_total_paper, __pyx_v_paper_amount); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5202, __pyx_L1_error)
                      __Pyx_GOTREF(__pyx_t_17);
                      __Pyx_DECREF_SET(__pyx_v_total_paper, __pyx_t_17);
                      __pyx_t_17 = 0;
 5203:                   else:
+5204:                     wb_member.get_paper_trade(paper_amount, contract_list, wateryear)
                /*else*/ {
                  __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5204, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __pyx_t_9 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17);
                    if (likely(__pyx_t_9)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                      __Pyx_INCREF(__pyx_t_9);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_17, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5204, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                    __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5204, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_GOTREF(__pyx_t_19);
                  } else
                  #endif
                  {
                    __pyx_t_8 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5204, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    if (__pyx_t_9) {
                      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_paper_amount);
                    __Pyx_GIVEREF(__pyx_v_paper_amount);
                    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_paper_amount);
                    __Pyx_INCREF(__pyx_v_contract_list);
                    __Pyx_GIVEREF(__pyx_v_contract_list);
                    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_contract_list);
                    __Pyx_INCREF(__pyx_v_wateryear);
                    __Pyx_GIVEREF(__pyx_v_wateryear);
                    PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_wateryear);
                    __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_8, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5204, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_19);
                    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5205:                     total_paper += paper_amount
                  __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_v_total_paper, __pyx_v_paper_amount); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5205, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_DECREF_SET(__pyx_v_total_paper, __pyx_t_19);
                  __pyx_t_19 = 0;
                }
                __pyx_L30:;
 5206: 
 5207: 
 5208:           #recalculate the 'recovery demand' at each waterbank		  
+5209:           demand_constraint = recovery_source.find_node_output()
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_output); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5209, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = NULL;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_10)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_10);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
          }
        }
        __pyx_t_4 = (__pyx_t_10) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_10) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5209, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_demand_constraint, __pyx_t_4);
        __pyx_t_4 = 0;
+5210:           self.find_node_demand_district(recovery_source, canal, lookback_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge)
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_district); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5210, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyInt_From_long(__pyx_v_toggle_district_recharge); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5210, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_19 = NULL;
        __pyx_t_18 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_19)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_19);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_18 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[13] = {__pyx_t_19, __pyx_v_recovery_source, __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_10};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_18, 12+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5210, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[13] = {__pyx_t_19, __pyx_v_recovery_source, __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_t_10};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_18, 12+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5210, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        } else
        #endif
        {
          __pyx_t_17 = PyTuple_New(12+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5210, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          if (__pyx_t_19) {
            __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_19); __pyx_t_19 = NULL;
          }
          __Pyx_INCREF(__pyx_v_recovery_source);
          __Pyx_GIVEREF(__pyx_v_recovery_source);
          PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_18, __pyx_v_recovery_source);
          __Pyx_INCREF(__pyx_v_canal);
          __Pyx_GIVEREF(__pyx_v_canal);
          PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_18, __pyx_v_canal);
          __Pyx_INCREF(__pyx_v_lookback_loc);
          __Pyx_GIVEREF(__pyx_v_lookback_loc);
          PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_18, __pyx_v_lookback_loc);
          __Pyx_INCREF(__pyx_v_demand_constraint);
          __Pyx_GIVEREF(__pyx_v_demand_constraint);
          PyTuple_SET_ITEM(__pyx_t_17, 3+__pyx_t_18, __pyx_v_demand_constraint);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_17, 4+__pyx_t_18, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_priority_list);
          __Pyx_GIVEREF(__pyx_v_priority_list);
          PyTuple_SET_ITEM(__pyx_t_17, 5+__pyx_t_18, __pyx_v_priority_list);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_17, 6+__pyx_t_18, __pyx_v_contract_canal);
          __Pyx_INCREF(__pyx_v_dowy);
          __Pyx_GIVEREF(__pyx_v_dowy);
          PyTuple_SET_ITEM(__pyx_t_17, 7+__pyx_t_18, __pyx_v_dowy);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_17, 8+__pyx_t_18, __pyx_v_wateryear);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_17, 9+__pyx_t_18, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_v_type_list);
          PyTuple_SET_ITEM(__pyx_t_17, 10+__pyx_t_18, __pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_t_10);
          PyTuple_SET_ITEM(__pyx_t_17, 11+__pyx_t_18, __pyx_t_10);
          __pyx_t_10 = 0;
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_17, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5210, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5211:           canal.find_turnout_adjustment(demand_constraint, flow_dir, lookback_loc, type_list)
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5211, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_17 = NULL;
        __pyx_t_18 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
          __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_7);
          if (likely(__pyx_t_17)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
            __Pyx_INCREF(__pyx_t_17);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_7, function);
            __pyx_t_18 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_demand_constraint, __pyx_v_flow_dir, __pyx_v_lookback_loc, __pyx_v_type_list};
          __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5211, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
          PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_demand_constraint, __pyx_v_flow_dir, __pyx_v_lookback_loc, __pyx_v_type_list};
          __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5211, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_GOTREF(__pyx_t_4);
        } else
        #endif
        {
          __pyx_t_10 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5211, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          if (__pyx_t_17) {
            __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_10, 0, __pyx_t_17); __pyx_t_17 = NULL;
          }
          __Pyx_INCREF(__pyx_v_demand_constraint);
          __Pyx_GIVEREF(__pyx_v_demand_constraint);
          PyTuple_SET_ITEM(__pyx_t_10, 0+__pyx_t_18, __pyx_v_demand_constraint);
          __Pyx_INCREF(__pyx_v_flow_dir);
          __Pyx_GIVEREF(__pyx_v_flow_dir);
          PyTuple_SET_ITEM(__pyx_t_10, 1+__pyx_t_18, __pyx_v_flow_dir);
          __Pyx_INCREF(__pyx_v_lookback_loc);
          __Pyx_GIVEREF(__pyx_v_lookback_loc);
          PyTuple_SET_ITEM(__pyx_t_10, 2+__pyx_t_18, __pyx_v_lookback_loc);
          __Pyx_INCREF(__pyx_v_type_list);
          __Pyx_GIVEREF(__pyx_v_type_list);
          PyTuple_SET_ITEM(__pyx_t_10, 3+__pyx_t_18, __pyx_v_type_list);
          __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_10, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5211, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5212: 
+5213:       elif recovery_source.is_Waterbank == 1:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_Waterbank); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5213, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5213, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5213, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_11) {
/* … */
      goto __pyx_L19;
    }
+5214:         for xx in recovery_source.participant_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5214, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_4 = __pyx_t_7; __Pyx_INCREF(__pyx_t_4); __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5214, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_6 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5214, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5214, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5214, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_5); __Pyx_INCREF(__pyx_t_7); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5214, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_4, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5214, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_6(__pyx_t_4);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5214, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5215:           num_members = self.district_keys_len[xx]
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5215, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_num_members, __pyx_t_10);
        __pyx_t_10 = 0;
+5216:           for wb_member in self.district_keys[xx]:
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5216, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5216, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
          __pyx_t_10 = __pyx_t_7; __Pyx_INCREF(__pyx_t_10); __pyx_t_12 = 0;
          __pyx_t_13 = NULL;
        } else {
          __pyx_t_12 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5216, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_13 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5216, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        for (;;) {
          if (likely(!__pyx_t_13)) {
            if (likely(PyList_CheckExact(__pyx_t_10))) {
              if (__pyx_t_12 >= PyList_GET_SIZE(__pyx_t_10)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5216, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5216, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            } else {
              if (__pyx_t_12 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_12); __Pyx_INCREF(__pyx_t_7); __pyx_t_12++; if (unlikely(0 < 0)) __PYX_ERR(0, 5216, __pyx_L1_error)
              #else
              __pyx_t_7 = PySequence_ITEM(__pyx_t_10, __pyx_t_12); __pyx_t_12++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5216, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_7);
              #endif
            }
          } else {
            __pyx_t_7 = __pyx_t_13(__pyx_t_10);
            if (unlikely(!__pyx_t_7)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5216, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_7);
          }
          __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_7);
          __pyx_t_7 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
 5217:             #find waterbank partner demand (i.e., recovery capacity of their ownership share)
+5218:             demand_constraint = recovery_source.find_node_demand(contract_list, xx, num_members, search_type)
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5218, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_19 = NULL;
          __pyx_t_18 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_19)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_19);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
              __pyx_t_18 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5218, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5218, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          {
            __pyx_t_8 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5218, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            if (__pyx_t_19) {
              __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_19); __pyx_t_19 = NULL;
            }
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_contract_list);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_xx);
            __Pyx_INCREF(__pyx_v_num_members);
            __Pyx_GIVEREF(__pyx_v_num_members);
            PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_num_members);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_18, __pyx_v_search_type);
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_8, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5218, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF_SET(__pyx_v_demand_constraint, __pyx_t_7);
          __pyx_t_7 = 0;
 5219:             #does this partner want recovery water?
+5220:             deliveries =  wb_member.set_request_constraints(demand_constraint, search_type, contract_list, recovery_source.banked[xx], recovery_source.bank_cap[xx], dowy, wateryear)
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5220, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5220, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5220, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_19);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_bank_cap); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5220, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5220, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = NULL;
          __pyx_t_18 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_8)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_8);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
              __pyx_t_18 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_19, __pyx_t_9, __pyx_v_dowy, __pyx_v_wateryear};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5220, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[8] = {__pyx_t_8, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_19, __pyx_t_9, __pyx_v_dowy, __pyx_v_wateryear};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 7+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5220, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          } else
          #endif
          {
            __pyx_t_16 = PyTuple_New(7+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5220, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            if (__pyx_t_8) {
              __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_8); __pyx_t_8 = NULL;
            }
            __Pyx_INCREF(__pyx_v_demand_constraint);
            __Pyx_GIVEREF(__pyx_v_demand_constraint);
            PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_demand_constraint);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_search_type);
            __Pyx_INCREF(__pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_v_contract_list);
            PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_contract_list);
            __Pyx_GIVEREF(__pyx_t_19);
            PyTuple_SET_ITEM(__pyx_t_16, 3+__pyx_t_18, __pyx_t_19);
            __Pyx_GIVEREF(__pyx_t_9);
            PyTuple_SET_ITEM(__pyx_t_16, 4+__pyx_t_18, __pyx_t_9);
            __Pyx_INCREF(__pyx_v_dowy);
            __Pyx_GIVEREF(__pyx_v_dowy);
            PyTuple_SET_ITEM(__pyx_t_16, 5+__pyx_t_18, __pyx_v_dowy);
            __Pyx_INCREF(__pyx_v_wateryear);
            __Pyx_GIVEREF(__pyx_v_wateryear);
            PyTuple_SET_ITEM(__pyx_t_16, 6+__pyx_t_18, __pyx_v_wateryear);
            __pyx_t_19 = 0;
            __pyx_t_9 = 0;
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_16, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5220, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF_SET(__pyx_v_deliveries, __pyx_t_7);
          __pyx_t_7 = 0;
 5221:             #what is their priority over the water/canal space?
+5222:             priority_bank_space = recovery_source.find_priority_space(num_members, xx, search_type)
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5222, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_16 = NULL;
          __pyx_t_18 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_16)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_16);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
              __pyx_t_18 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_num_members, __pyx_v_xx, __pyx_v_search_type};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5222, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_num_members, __pyx_v_xx, __pyx_v_search_type};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5222, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_GOTREF(__pyx_t_7);
          } else
          #endif
          {
            __pyx_t_9 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5222, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            if (__pyx_t_16) {
              __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_16); __pyx_t_16 = NULL;
            }
            __Pyx_INCREF(__pyx_v_num_members);
            __Pyx_GIVEREF(__pyx_v_num_members);
            PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_18, __pyx_v_num_members);
            __Pyx_INCREF(__pyx_v_xx);
            __Pyx_GIVEREF(__pyx_v_xx);
            PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_18, __pyx_v_xx);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_18, __pyx_v_search_type);
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_9, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5222, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF_SET(__pyx_v_priority_bank_space, __pyx_t_7);
          __pyx_t_7 = 0;
+5223:             priorities = recovery_source.set_demand_priority("NA", "N/A", priority_bank_space, deliveries, demand_constraint, search_type, "N/A", "N/A",wb_member.contract_list)
          __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5223, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_17);
          __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5223, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __pyx_t_16 = NULL;
          __pyx_t_18 = 0;
          if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
            __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17);
            if (likely(__pyx_t_16)) {
              PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
              __Pyx_INCREF(__pyx_t_16);
              __Pyx_INCREF(function);
              __Pyx_DECREF_SET(__pyx_t_17, function);
              __pyx_t_18 = 1;
            }
          }
          #if CYTHON_FAST_PYCALL
          if (PyFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[10] = {__pyx_t_16, __pyx_n_u_NA, __pyx_kp_u_N_A, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_9};
            __pyx_t_7 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 9+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5223, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          } else
          #endif
          #if CYTHON_FAST_PYCCALL
          if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
            PyObject *__pyx_temp[10] = {__pyx_t_16, __pyx_n_u_NA, __pyx_kp_u_N_A, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_kp_u_N_A, __pyx_kp_u_N_A, __pyx_t_9};
            __pyx_t_7 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 9+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5223, __pyx_L1_error)
            __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
          } else
          #endif
          {
            __pyx_t_19 = PyTuple_New(9+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5223, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            if (__pyx_t_16) {
              __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_16); __pyx_t_16 = NULL;
            }
            __Pyx_INCREF(__pyx_n_u_NA);
            __Pyx_GIVEREF(__pyx_n_u_NA);
            PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_18, __pyx_n_u_NA);
            __Pyx_INCREF(__pyx_kp_u_N_A);
            __Pyx_GIVEREF(__pyx_kp_u_N_A);
            PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_18, __pyx_kp_u_N_A);
            __Pyx_INCREF(__pyx_v_priority_bank_space);
            __Pyx_GIVEREF(__pyx_v_priority_bank_space);
            PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_18, __pyx_v_priority_bank_space);
            __Pyx_INCREF(__pyx_v_deliveries);
            __Pyx_GIVEREF(__pyx_v_deliveries);
            PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_18, __pyx_v_deliveries);
            __Pyx_INCREF(__pyx_v_demand_constraint);
            __Pyx_GIVEREF(__pyx_v_demand_constraint);
            PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_18, __pyx_v_demand_constraint);
            __Pyx_INCREF(__pyx_v_search_type);
            __Pyx_GIVEREF(__pyx_v_search_type);
            PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_18, __pyx_v_search_type);
            __Pyx_INCREF(__pyx_kp_u_N_A);
            __Pyx_GIVEREF(__pyx_kp_u_N_A);
            PyTuple_SET_ITEM(__pyx_t_19, 6+__pyx_t_18, __pyx_kp_u_N_A);
            __Pyx_INCREF(__pyx_kp_u_N_A);
            __Pyx_GIVEREF(__pyx_kp_u_N_A);
            PyTuple_SET_ITEM(__pyx_t_19, 7+__pyx_t_18, __pyx_kp_u_N_A);
            __Pyx_GIVEREF(__pyx_t_9);
            PyTuple_SET_ITEM(__pyx_t_19, 8+__pyx_t_18, __pyx_t_9);
            __pyx_t_9 = 0;
            __pyx_t_7 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_19, NULL); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5223, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
          }
          __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
          __Pyx_XDECREF_SET(__pyx_v_priorities, __pyx_t_7);
          __pyx_t_7 = 0;
+5224:             priority_turnout_adjusted = {}
          __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5224, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_XDECREF_SET(__pyx_v_priority_turnout_adjusted, ((PyObject*)__pyx_t_7));
          __pyx_t_7 = 0;
 5225: 
 5226: 
 5227:             #need to adjust the water request to account for the banking partner share of the turnout
+5228:             for zz in type_list:
          if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
            __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
            __pyx_t_21 = NULL;
          } else {
            __pyx_t_20 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5228, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_21 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5228, __pyx_L1_error)
          }
          for (;;) {
            if (likely(!__pyx_t_21)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_17 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_17); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5228, __pyx_L1_error)
                #else
                __pyx_t_17 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5228, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                #endif
              } else {
                if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_17); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5228, __pyx_L1_error)
                #else
                __pyx_t_17 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5228, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                #endif
              }
            } else {
              __pyx_t_17 = __pyx_t_21(__pyx_t_7);
              if (unlikely(!__pyx_t_17)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 5228, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_17);
            }
            __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_17);
            __pyx_t_17 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5229:               priority_turnout_adjusted[zz] = priorities[zz]*canal.turnout_frac[zz][lookback_loc]
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyNumber_Multiply(__pyx_t_17, __pyx_t_19); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (unlikely(PyDict_SetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz, __pyx_t_9) < 0)) __PYX_ERR(0, 5229, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
 5230:             #finds how much water can be delivered through paper trades (exchange of GW recovery for stored SW)
 5231: 			#and how much water can be delivered directly
 5232: 			#canal.recovery_flow_frac is the adjustment needed if the bank runs into canal capacity constraints
+5233:             for zz in type_list:
          if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
            __pyx_t_7 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_7); __pyx_t_20 = 0;
            __pyx_t_21 = NULL;
          } else {
            __pyx_t_20 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5233, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_21 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_21)) __PYX_ERR(0, 5233, __pyx_L1_error)
          }
          for (;;) {
            if (likely(!__pyx_t_21)) {
              if (likely(PyList_CheckExact(__pyx_t_7))) {
                if (__pyx_t_20 >= PyList_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_9); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5233, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5233, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              } else {
                if (__pyx_t_20 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
                #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                __pyx_t_9 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_20); __Pyx_INCREF(__pyx_t_9); __pyx_t_20++; if (unlikely(0 < 0)) __PYX_ERR(0, 5233, __pyx_L1_error)
                #else
                __pyx_t_9 = PySequence_ITEM(__pyx_t_7, __pyx_t_20); __pyx_t_20++; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5233, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                #endif
              }
            } else {
              __pyx_t_9 = __pyx_t_21(__pyx_t_7);
              if (unlikely(!__pyx_t_9)) {
                PyObject* exc_type = PyErr_Occurred();
                if (exc_type) {
                  if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                  else __PYX_ERR(0, 5233, __pyx_L1_error)
                }
                break;
              }
              __Pyx_GOTREF(__pyx_t_9);
            }
            __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_9);
            __pyx_t_9 = 0;
/* … */
          }
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5234:               paper_amount = priority_turnout_adjusted[zz]*min(paper_fractions[zz], canal.recovery_flow_frac[zz][lookback_loc])
            __pyx_t_9 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_t_19, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_17, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __pyx_t_17 = __Pyx_PyObject_GetItem(__pyx_v_paper_fractions, __pyx_v_zz); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __pyx_t_8 = PyObject_RichCompare(__pyx_t_19, __pyx_t_17, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            if (__pyx_t_11) {
              __Pyx_INCREF(__pyx_t_19);
              __pyx_t_16 = __pyx_t_19;
            } else {
              __Pyx_INCREF(__pyx_t_17);
              __pyx_t_16 = __pyx_t_17;
            }
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_19 = PyNumber_Multiply(__pyx_t_9, __pyx_t_16); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5234, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_XDECREF_SET(__pyx_v_paper_amount, __pyx_t_19);
            __pyx_t_19 = 0;
+5235:               direct_amount = min(direct_recovery, priority_turnout_adjusted[zz]*canal.recovery_flow_frac[zz][lookback_loc] - paper_amount)
            __pyx_t_19 = __Pyx_PyDict_GetItem(__pyx_v_priority_turnout_adjusted, __pyx_v_zz); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_recovery_flow_frac); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_zz); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_9, __pyx_v_lookback_loc); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __pyx_t_9 = PyNumber_Multiply(__pyx_t_19, __pyx_t_16); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_9);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = PyNumber_Subtract(__pyx_t_9, __pyx_v_paper_amount); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_INCREF(__pyx_v_direct_recovery);
            __pyx_t_9 = __pyx_v_direct_recovery;
            __pyx_t_17 = PyObject_RichCompare(__pyx_t_16, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5235, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (__pyx_t_11) {
              __Pyx_INCREF(__pyx_t_16);
              __pyx_t_19 = __pyx_t_16;
            } else {
              __Pyx_INCREF(__pyx_t_9);
              __pyx_t_19 = __pyx_t_9;
            }
            __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __pyx_t_19;
            __Pyx_INCREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_XDECREF_SET(__pyx_v_direct_amount, __pyx_t_16);
            __pyx_t_16 = 0;
+5236:               recovery_source.adjust_recovery(paper_amount, xx, wateryear)#adjust accounts
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5236, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_9 = NULL;
            __pyx_t_18 = 0;
            if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
              __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_19);
              if (likely(__pyx_t_9)) {
                PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
                __Pyx_INCREF(__pyx_t_9);
                __Pyx_INCREF(function);
                __Pyx_DECREF_SET(__pyx_t_19, function);
                __pyx_t_18 = 1;
              }
            }
            #if CYTHON_FAST_PYCALL
            if (PyFunction_Check(__pyx_t_19)) {
              PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_xx, __pyx_v_wateryear};
              __pyx_t_16 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5236, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_GOTREF(__pyx_t_16);
            } else
            #endif
            #if CYTHON_FAST_PYCCALL
            if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
              PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_xx, __pyx_v_wateryear};
              __pyx_t_16 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5236, __pyx_L1_error)
              __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_GOTREF(__pyx_t_16);
            } else
            #endif
            {
              __pyx_t_17 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5236, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              if (__pyx_t_9) {
                __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_17, 0, __pyx_t_9); __pyx_t_9 = NULL;
              }
              __Pyx_INCREF(__pyx_v_paper_amount);
              __Pyx_GIVEREF(__pyx_v_paper_amount);
              PyTuple_SET_ITEM(__pyx_t_17, 0+__pyx_t_18, __pyx_v_paper_amount);
              __Pyx_INCREF(__pyx_v_xx);
              __Pyx_GIVEREF(__pyx_v_xx);
              PyTuple_SET_ITEM(__pyx_t_17, 1+__pyx_t_18, __pyx_v_xx);
              __Pyx_INCREF(__pyx_v_wateryear);
              __Pyx_GIVEREF(__pyx_v_wateryear);
              PyTuple_SET_ITEM(__pyx_t_17, 2+__pyx_t_18, __pyx_v_wateryear);
              __pyx_t_16 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_17, NULL); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5236, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            }
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
+5237:               location_pumpout += paper_amount
            __pyx_t_16 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_paper_amount); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5237, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_16);
            __pyx_t_16 = 0;
 5238: 			  #if the GW is being delivered to the WB owner, more water can be delivered (not constrained by 
 5239: 			  #another district's willingness to trade SW storage)
+5240:               if delivery_loc_name == wb_member.key:
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_key); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5240, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_19 = PyObject_RichCompare(__pyx_v_delivery_loc_name, __pyx_t_16, Py_EQ); __Pyx_XGOTREF(__pyx_t_19); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5240, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_19); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5240, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            if (__pyx_t_11) {
/* … */
              goto __pyx_L43;
            }
+5241:                 demand_constraint = recovery_source.find_node_demand(contract_list, xx, num_members, search_type)
              __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5241, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_17 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
                __pyx_t_17 = PyMethod_GET_SELF(__pyx_t_16);
                if (likely(__pyx_t_17)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                  __Pyx_INCREF(__pyx_t_17);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_16, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_16)) {
                PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
                __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5241, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
                PyObject *__pyx_temp[5] = {__pyx_t_17, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
                __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5241, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              {
                __pyx_t_9 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5241, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                if (__pyx_t_17) {
                  __Pyx_GIVEREF(__pyx_t_17); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_17); __pyx_t_17 = NULL;
                }
                __Pyx_INCREF(__pyx_v_contract_list);
                __Pyx_GIVEREF(__pyx_v_contract_list);
                PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_18, __pyx_v_contract_list);
                __Pyx_INCREF(__pyx_v_xx);
                __Pyx_GIVEREF(__pyx_v_xx);
                PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_18, __pyx_v_xx);
                __Pyx_INCREF(__pyx_v_num_members);
                __Pyx_GIVEREF(__pyx_v_num_members);
                PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_18, __pyx_v_num_members);
                __Pyx_INCREF(__pyx_v_search_type);
                __Pyx_GIVEREF(__pyx_v_search_type);
                PyTuple_SET_ITEM(__pyx_t_9, 3+__pyx_t_18, __pyx_v_search_type);
                __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_9, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5241, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF_SET(__pyx_v_demand_constraint, __pyx_t_19);
              __pyx_t_19 = 0;
+5242:                 max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.banked[xx]/num_members)
              __Pyx_INCREF(__pyx_v_direct_amount);
              __pyx_t_19 = __pyx_v_direct_amount;
              __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_9);
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_9, __pyx_v_num_members); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_16);
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_INCREF(__pyx_v_demand_constraint);
              __pyx_t_9 = __pyx_v_demand_constraint;
              __pyx_t_8 = PyObject_RichCompare(__pyx_t_19, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (__pyx_t_11) {
                __Pyx_INCREF(__pyx_t_19);
                __pyx_t_17 = __pyx_t_19;
              } else {
                __Pyx_INCREF(__pyx_t_9);
                __pyx_t_17 = __pyx_t_9;
              }
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_INCREF(__pyx_t_17);
              __pyx_t_9 = __pyx_t_17;
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __pyx_t_8 = PyObject_RichCompare(__pyx_t_16, __pyx_t_9, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5242, __pyx_L1_error)
              __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
              if (__pyx_t_11) {
                __Pyx_INCREF(__pyx_t_16);
                __pyx_t_17 = __pyx_t_16;
              } else {
                __Pyx_INCREF(__pyx_t_9);
                __pyx_t_17 = __pyx_t_9;
              }
              __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
              __pyx_t_19 = __pyx_t_17;
              __Pyx_INCREF(__pyx_t_19);
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_19);
              __pyx_t_19 = 0;
+5243:                 actual_delivery = wb_member.direct_delivery_bank(max_direct_recovery, wateryear)
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5243, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_16 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17);
                if (likely(__pyx_t_16)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                  __Pyx_INCREF(__pyx_t_16);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_17, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5243, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[3] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 2+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5243, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              {
                __pyx_t_9 = PyTuple_New(2+__pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5243, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                if (__pyx_t_16) {
                  __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_16); __pyx_t_16 = NULL;
                }
                __Pyx_INCREF(__pyx_v_max_direct_recovery);
                __Pyx_GIVEREF(__pyx_v_max_direct_recovery);
                PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_18, __pyx_v_max_direct_recovery);
                __Pyx_INCREF(__pyx_v_wateryear);
                __Pyx_GIVEREF(__pyx_v_wateryear);
                PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_18, __pyx_v_wateryear);
                __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_9, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5243, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_XDECREF_SET(__pyx_v_actual_delivery, __pyx_t_19);
              __pyx_t_19 = 0;
+5244:                 direct_recovery -= actual_delivery
              __pyx_t_19 = PyNumber_InPlaceSubtract(__pyx_v_direct_recovery, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5244, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF_SET(__pyx_v_direct_recovery, __pyx_t_19);
              __pyx_t_19 = 0;
+5245:                 recovery_source.adjust_recovery(actual_delivery, xx, wateryear)
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5245, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_9 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17);
                if (likely(__pyx_t_9)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                  __Pyx_INCREF(__pyx_t_9);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_17, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5245, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5245, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              {
                __pyx_t_16 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5245, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_16);
                if (__pyx_t_9) {
                  __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9); __pyx_t_9 = NULL;
                }
                __Pyx_INCREF(__pyx_v_actual_delivery);
                __Pyx_GIVEREF(__pyx_v_actual_delivery);
                PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_actual_delivery);
                __Pyx_INCREF(__pyx_v_xx);
                __Pyx_GIVEREF(__pyx_v_xx);
                PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_xx);
                __Pyx_INCREF(__pyx_v_wateryear);
                __Pyx_GIVEREF(__pyx_v_wateryear);
                PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_wateryear);
                __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_16, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5245, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
              }
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5246:                 location_pumpout += actual_delivery
              __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5246, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_19);
              __pyx_t_19 = 0;
+5247:               elif wb_member.is_Private == 1:
            __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_is_Private); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5247, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_19);
            __pyx_t_17 = __Pyx_PyInt_EqObjC(__pyx_t_19, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5247, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_17);
            __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
            __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5247, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
            if (__pyx_t_11) {
/* … */
              goto __pyx_L43;
            }
+5248:                 counter_toggle = 0
              __pyx_v_counter_toggle = 0;
+5249:                 for district_pump in wb_member.district_list:
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_district_list); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5249, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              if (likely(PyList_CheckExact(__pyx_t_17)) || PyTuple_CheckExact(__pyx_t_17)) {
                __pyx_t_19 = __pyx_t_17; __Pyx_INCREF(__pyx_t_19); __pyx_t_22 = 0;
                __pyx_t_23 = NULL;
              } else {
                __pyx_t_22 = -1; __pyx_t_19 = PyObject_GetIter(__pyx_t_17); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5249, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __pyx_t_23 = Py_TYPE(__pyx_t_19)->tp_iternext; if (unlikely(!__pyx_t_23)) __PYX_ERR(0, 5249, __pyx_L1_error)
              }
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              for (;;) {
                if (likely(!__pyx_t_23)) {
                  if (likely(PyList_CheckExact(__pyx_t_19))) {
                    if (__pyx_t_22 >= PyList_GET_SIZE(__pyx_t_19)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_17 = PyList_GET_ITEM(__pyx_t_19, __pyx_t_22); __Pyx_INCREF(__pyx_t_17); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 5249, __pyx_L1_error)
                    #else
                    __pyx_t_17 = PySequence_ITEM(__pyx_t_19, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5249, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    #endif
                  } else {
                    if (__pyx_t_22 >= PyTuple_GET_SIZE(__pyx_t_19)) break;
                    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
                    __pyx_t_17 = PyTuple_GET_ITEM(__pyx_t_19, __pyx_t_22); __Pyx_INCREF(__pyx_t_17); __pyx_t_22++; if (unlikely(0 < 0)) __PYX_ERR(0, 5249, __pyx_L1_error)
                    #else
                    __pyx_t_17 = PySequence_ITEM(__pyx_t_19, __pyx_t_22); __pyx_t_22++; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5249, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    #endif
                  }
                } else {
                  __pyx_t_17 = __pyx_t_23(__pyx_t_19);
                  if (unlikely(!__pyx_t_17)) {
                    PyObject* exc_type = PyErr_Occurred();
                    if (exc_type) {
                      if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                      else __PYX_ERR(0, 5249, __pyx_L1_error)
                    }
                    break;
                  }
                  __Pyx_GOTREF(__pyx_t_17);
                }
                __Pyx_XDECREF_SET(__pyx_v_district_pump, __pyx_t_17);
                __pyx_t_17 = 0;
/* … */
              }
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5250:                   if delivery_loc_name == district_pump:
                __pyx_t_17 = PyObject_RichCompare(__pyx_v_delivery_loc_name, __pyx_v_district_pump, Py_EQ); __Pyx_XGOTREF(__pyx_t_17); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5250, __pyx_L1_error)
                __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_17); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5250, __pyx_L1_error)
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                if (__pyx_t_11) {
/* … */
                }
+5251:                     demand_constraint = recovery_source.find_node_demand(contract_list, xx, num_members, search_type)
                  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5251, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __pyx_t_9 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_16))) {
                    __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_16);
                    if (likely(__pyx_t_9)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_16);
                      __Pyx_INCREF(__pyx_t_9);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_16, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_16)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
                    __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5251, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_16)) {
                    PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
                    __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_16, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5251, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  {
                    __pyx_t_8 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5251, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    if (__pyx_t_9) {
                      __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_9); __pyx_t_9 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_contract_list);
                    __Pyx_GIVEREF(__pyx_v_contract_list);
                    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_contract_list);
                    __Pyx_INCREF(__pyx_v_xx);
                    __Pyx_GIVEREF(__pyx_v_xx);
                    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_xx);
                    __Pyx_INCREF(__pyx_v_num_members);
                    __Pyx_GIVEREF(__pyx_v_num_members);
                    PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_num_members);
                    __Pyx_INCREF(__pyx_v_search_type);
                    __Pyx_GIVEREF(__pyx_v_search_type);
                    PyTuple_SET_ITEM(__pyx_t_8, 3+__pyx_t_18, __pyx_v_search_type);
                    __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_16, __pyx_t_8, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5251, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF_SET(__pyx_v_demand_constraint, __pyx_t_17);
                  __pyx_t_17 = 0;
+5252:                     max_direct_recovery = min(demand_constraint, direct_amount, recovery_source.banked[xx]/num_members)
                  __Pyx_INCREF(__pyx_v_direct_amount);
                  __pyx_t_17 = __pyx_v_direct_amount;
                  __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_banked); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_8);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __pyx_t_16 = __Pyx_PyNumber_Divide(__pyx_t_8, __pyx_v_num_members); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_INCREF(__pyx_v_demand_constraint);
                  __pyx_t_8 = __pyx_v_demand_constraint;
                  __pyx_t_24 = PyObject_RichCompare(__pyx_t_17, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  if (__pyx_t_11) {
                    __Pyx_INCREF(__pyx_t_17);
                    __pyx_t_9 = __pyx_t_17;
                  } else {
                    __Pyx_INCREF(__pyx_t_8);
                    __pyx_t_9 = __pyx_t_8;
                  }
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_INCREF(__pyx_t_9);
                  __pyx_t_8 = __pyx_t_9;
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __pyx_t_24 = PyObject_RichCompare(__pyx_t_16, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_24); if (unlikely(!__pyx_t_24)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_24); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5252, __pyx_L1_error)
                  __Pyx_DECREF(__pyx_t_24); __pyx_t_24 = 0;
                  if (__pyx_t_11) {
                    __Pyx_INCREF(__pyx_t_16);
                    __pyx_t_9 = __pyx_t_16;
                  } else {
                    __Pyx_INCREF(__pyx_t_8);
                    __pyx_t_9 = __pyx_t_8;
                  }
                  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                  __pyx_t_17 = __pyx_t_9;
                  __Pyx_INCREF(__pyx_t_17);
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_max_direct_recovery, __pyx_t_17);
                  __pyx_t_17 = 0;
+5253:                     actual_delivery = wb_member.direct_delivery_bank(max_direct_recovery, wateryear, district_pump)
                  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_direct_delivery_bank); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5253, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_16 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                    __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_9);
                    if (likely(__pyx_t_16)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                      __Pyx_INCREF(__pyx_t_16);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_9, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_9)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear, __pyx_v_district_pump};
                    __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5253, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_max_direct_recovery, __pyx_v_wateryear, __pyx_v_district_pump};
                    __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5253, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  {
                    __pyx_t_8 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5253, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_8);
                    if (__pyx_t_16) {
                      __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_8, 0, __pyx_t_16); __pyx_t_16 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_max_direct_recovery);
                    __Pyx_GIVEREF(__pyx_v_max_direct_recovery);
                    PyTuple_SET_ITEM(__pyx_t_8, 0+__pyx_t_18, __pyx_v_max_direct_recovery);
                    __Pyx_INCREF(__pyx_v_wateryear);
                    __Pyx_GIVEREF(__pyx_v_wateryear);
                    PyTuple_SET_ITEM(__pyx_t_8, 1+__pyx_t_18, __pyx_v_wateryear);
                    __Pyx_INCREF(__pyx_v_district_pump);
                    __Pyx_GIVEREF(__pyx_v_district_pump);
                    PyTuple_SET_ITEM(__pyx_t_8, 2+__pyx_t_18, __pyx_v_district_pump);
                    __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_8, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5253, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_XDECREF_SET(__pyx_v_actual_delivery, __pyx_t_17);
                  __pyx_t_17 = 0;
+5254:                     direct_recovery -= actual_delivery
                  __pyx_t_17 = PyNumber_InPlaceSubtract(__pyx_v_direct_recovery, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5254, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __Pyx_DECREF_SET(__pyx_v_direct_recovery, __pyx_t_17);
                  __pyx_t_17 = 0;
+5255:                     recovery_source.adjust_recovery(actual_delivery, xx, wateryear)
                  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_adjust_recovery); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5255, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_9);
                  __pyx_t_8 = NULL;
                  __pyx_t_18 = 0;
                  if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_9))) {
                    __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_9);
                    if (likely(__pyx_t_8)) {
                      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_9);
                      __Pyx_INCREF(__pyx_t_8);
                      __Pyx_INCREF(function);
                      __Pyx_DECREF_SET(__pyx_t_9, function);
                      __pyx_t_18 = 1;
                    }
                  }
                  #if CYTHON_FAST_PYCALL
                  if (PyFunction_Check(__pyx_t_9)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                    __pyx_t_17 = __Pyx_PyFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5255, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  #if CYTHON_FAST_PYCCALL
                  if (__Pyx_PyFastCFunction_Check(__pyx_t_9)) {
                    PyObject *__pyx_temp[4] = {__pyx_t_8, __pyx_v_actual_delivery, __pyx_v_xx, __pyx_v_wateryear};
                    __pyx_t_17 = __Pyx_PyCFunction_FastCall(__pyx_t_9, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5255, __pyx_L1_error)
                    __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
                    __Pyx_GOTREF(__pyx_t_17);
                  } else
                  #endif
                  {
                    __pyx_t_16 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5255, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_16);
                    if (__pyx_t_8) {
                      __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_8); __pyx_t_8 = NULL;
                    }
                    __Pyx_INCREF(__pyx_v_actual_delivery);
                    __Pyx_GIVEREF(__pyx_v_actual_delivery);
                    PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_actual_delivery);
                    __Pyx_INCREF(__pyx_v_xx);
                    __Pyx_GIVEREF(__pyx_v_xx);
                    PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_xx);
                    __Pyx_INCREF(__pyx_v_wateryear);
                    __Pyx_GIVEREF(__pyx_v_wateryear);
                    PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_wateryear);
                    __pyx_t_17 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_16, NULL); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5255, __pyx_L1_error)
                    __Pyx_GOTREF(__pyx_t_17);
                    __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                  }
                  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
+5256:                     location_pumpout += actual_delivery
                  __pyx_t_17 = PyNumber_InPlaceAdd(__pyx_v_location_pumpout, __pyx_v_actual_delivery); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5256, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_17);
                  __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_17);
                  __pyx_t_17 = 0;
+5257:                     counter_toggle = 1
                  __pyx_v_counter_toggle = 1;
+5258:                 if counter_toggle == 0:
              __pyx_t_11 = ((__pyx_v_counter_toggle == 0) != 0);
              if (__pyx_t_11) {
/* … */
              }
+5259:                   wb_member.get_paper_trade(paper_amount, contract_list, wateryear)#exchange GW for SW 
                __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5259, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_17);
                __pyx_t_9 = NULL;
                __pyx_t_18 = 0;
                if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                  __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_17);
                  if (likely(__pyx_t_9)) {
                    PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                    __Pyx_INCREF(__pyx_t_9);
                    __Pyx_INCREF(function);
                    __Pyx_DECREF_SET(__pyx_t_17, function);
                    __pyx_t_18 = 1;
                  }
                }
                #if CYTHON_FAST_PYCALL
                if (PyFunction_Check(__pyx_t_17)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                  __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5259, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_GOTREF(__pyx_t_19);
                } else
                #endif
                #if CYTHON_FAST_PYCCALL
                if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                  PyObject *__pyx_temp[4] = {__pyx_t_9, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                  __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5259, __pyx_L1_error)
                  __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
                  __Pyx_GOTREF(__pyx_t_19);
                } else
                #endif
                {
                  __pyx_t_16 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5259, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_16);
                  if (__pyx_t_9) {
                    __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_16, 0, __pyx_t_9); __pyx_t_9 = NULL;
                  }
                  __Pyx_INCREF(__pyx_v_paper_amount);
                  __Pyx_GIVEREF(__pyx_v_paper_amount);
                  PyTuple_SET_ITEM(__pyx_t_16, 0+__pyx_t_18, __pyx_v_paper_amount);
                  __Pyx_INCREF(__pyx_v_contract_list);
                  __Pyx_GIVEREF(__pyx_v_contract_list);
                  PyTuple_SET_ITEM(__pyx_t_16, 1+__pyx_t_18, __pyx_v_contract_list);
                  __Pyx_INCREF(__pyx_v_wateryear);
                  __Pyx_GIVEREF(__pyx_v_wateryear);
                  PyTuple_SET_ITEM(__pyx_t_16, 2+__pyx_t_18, __pyx_v_wateryear);
                  __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_16, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5259, __pyx_L1_error)
                  __Pyx_GOTREF(__pyx_t_19);
                  __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
                }
                __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
                __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5260:                   total_paper += paper_amount
                __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_v_total_paper, __pyx_v_paper_amount); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5260, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF_SET(__pyx_v_total_paper, __pyx_t_19);
                __pyx_t_19 = 0;
 5261:               else:
+5262:                 wb_member.get_paper_trade(paper_amount, contract_list, wateryear)#exchange GW for SW 
            /*else*/ {
              __pyx_t_17 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_get_paper_trade); if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5262, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_17);
              __pyx_t_16 = NULL;
              __pyx_t_18 = 0;
              if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_17))) {
                __pyx_t_16 = PyMethod_GET_SELF(__pyx_t_17);
                if (likely(__pyx_t_16)) {
                  PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_17);
                  __Pyx_INCREF(__pyx_t_16);
                  __Pyx_INCREF(function);
                  __Pyx_DECREF_SET(__pyx_t_17, function);
                  __pyx_t_18 = 1;
                }
              }
              #if CYTHON_FAST_PYCALL
              if (PyFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5262, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              #if CYTHON_FAST_PYCCALL
              if (__Pyx_PyFastCFunction_Check(__pyx_t_17)) {
                PyObject *__pyx_temp[4] = {__pyx_t_16, __pyx_v_paper_amount, __pyx_v_contract_list, __pyx_v_wateryear};
                __pyx_t_19 = __Pyx_PyCFunction_FastCall(__pyx_t_17, __pyx_temp+1-__pyx_t_18, 3+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5262, __pyx_L1_error)
                __Pyx_XDECREF(__pyx_t_16); __pyx_t_16 = 0;
                __Pyx_GOTREF(__pyx_t_19);
              } else
              #endif
              {
                __pyx_t_9 = PyTuple_New(3+__pyx_t_18); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5262, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_9);
                if (__pyx_t_16) {
                  __Pyx_GIVEREF(__pyx_t_16); PyTuple_SET_ITEM(__pyx_t_9, 0, __pyx_t_16); __pyx_t_16 = NULL;
                }
                __Pyx_INCREF(__pyx_v_paper_amount);
                __Pyx_GIVEREF(__pyx_v_paper_amount);
                PyTuple_SET_ITEM(__pyx_t_9, 0+__pyx_t_18, __pyx_v_paper_amount);
                __Pyx_INCREF(__pyx_v_contract_list);
                __Pyx_GIVEREF(__pyx_v_contract_list);
                PyTuple_SET_ITEM(__pyx_t_9, 1+__pyx_t_18, __pyx_v_contract_list);
                __Pyx_INCREF(__pyx_v_wateryear);
                __Pyx_GIVEREF(__pyx_v_wateryear);
                PyTuple_SET_ITEM(__pyx_t_9, 2+__pyx_t_18, __pyx_v_wateryear);
                __pyx_t_19 = __Pyx_PyObject_Call(__pyx_t_17, __pyx_t_9, NULL); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5262, __pyx_L1_error)
                __Pyx_GOTREF(__pyx_t_19);
                __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
              }
              __Pyx_DECREF(__pyx_t_17); __pyx_t_17 = 0;
              __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
+5263:                 total_paper += paper_amount
              __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_v_total_paper, __pyx_v_paper_amount); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5263, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_19);
              __Pyx_DECREF_SET(__pyx_v_total_paper, __pyx_t_19);
              __pyx_t_19 = 0;
            }
            __pyx_L43:;
 5264: 
 5265:         #recalculate the 'recovery demand' at each waterbank			
+5266:         self.find_node_demand_bank(recovery_source, canal, lookback_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list)
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_node_demand_bank); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5266, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = NULL;
      __pyx_t_18 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_18 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[11] = {__pyx_t_7, __pyx_v_recovery_source, __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 10+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5266, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[11] = {__pyx_t_7, __pyx_v_recovery_source, __pyx_v_canal, __pyx_v_lookback_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 10+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5266, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      {
        __pyx_t_19 = PyTuple_New(10+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5266, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_recovery_source);
        __Pyx_GIVEREF(__pyx_v_recovery_source);
        PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_18, __pyx_v_recovery_source);
        __Pyx_INCREF(__pyx_v_canal);
        __Pyx_GIVEREF(__pyx_v_canal);
        PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_18, __pyx_v_canal);
        __Pyx_INCREF(__pyx_v_lookback_loc);
        __Pyx_GIVEREF(__pyx_v_lookback_loc);
        PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_18, __pyx_v_lookback_loc);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_18, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_18, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_19, 5+__pyx_t_18, __pyx_v_contract_canal);
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_19, 6+__pyx_t_18, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_19, 7+__pyx_t_18, __pyx_v_wateryear);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_19, 8+__pyx_t_18, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_19, 9+__pyx_t_18, __pyx_v_type_list);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_19, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5266, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5267:         current_recovery = 0.0
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_XDECREF_SET(__pyx_v_current_recovery, __pyx_float_0_0);
+5268:         for xx in recovery_source.participant_list:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5268, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (likely(PyList_CheckExact(__pyx_t_4)) || PyTuple_CheckExact(__pyx_t_4)) {
        __pyx_t_10 = __pyx_t_4; __Pyx_INCREF(__pyx_t_10); __pyx_t_5 = 0;
        __pyx_t_6 = NULL;
      } else {
        __pyx_t_5 = -1; __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5268, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_6 = Py_TYPE(__pyx_t_10)->tp_iternext; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5268, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      for (;;) {
        if (likely(!__pyx_t_6)) {
          if (likely(PyList_CheckExact(__pyx_t_10))) {
            if (__pyx_t_5 >= PyList_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyList_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5268, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          } else {
            if (__pyx_t_5 >= PyTuple_GET_SIZE(__pyx_t_10)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_10, __pyx_t_5); __Pyx_INCREF(__pyx_t_4); __pyx_t_5++; if (unlikely(0 < 0)) __PYX_ERR(0, 5268, __pyx_L1_error)
            #else
            __pyx_t_4 = PySequence_ITEM(__pyx_t_10, __pyx_t_5); __pyx_t_5++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5268, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_4);
            #endif
          }
        } else {
          __pyx_t_4 = __pyx_t_6(__pyx_t_10);
          if (unlikely(!__pyx_t_4)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5268, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_4);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_4);
        __pyx_t_4 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
+5269:           current_recovery += recovery_source.recovery_use[xx]
        __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_recovery_use); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_current_recovery, __pyx_t_19); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5269, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_DECREF_SET(__pyx_v_current_recovery, __pyx_t_4);
        __pyx_t_4 = 0;
+5270:         demand_constraint = recovery_source.recovery - current_recovery
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_recovery); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = PyNumber_Subtract(__pyx_t_10, __pyx_v_current_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5270, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_demand_constraint, __pyx_t_4);
      __pyx_t_4 = 0;
+5271:         canal.find_turnout_adjustment(demand_constraint, flow_dir, lookback_loc, type_list)
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_find_turnout_adjustment); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5271, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_19 = NULL;
      __pyx_t_18 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_19 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_19)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_19);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_18 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_demand_constraint, __pyx_v_flow_dir, __pyx_v_lookback_loc, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5271, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[5] = {__pyx_t_19, __pyx_v_demand_constraint, __pyx_v_flow_dir, __pyx_v_lookback_loc, __pyx_v_type_list};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 4+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5271, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_19); __pyx_t_19 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(4+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_19) {
          __Pyx_GIVEREF(__pyx_t_19); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_19); __pyx_t_19 = NULL;
        }
        __Pyx_INCREF(__pyx_v_demand_constraint);
        __Pyx_GIVEREF(__pyx_v_demand_constraint);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_18, __pyx_v_demand_constraint);
        __Pyx_INCREF(__pyx_v_flow_dir);
        __Pyx_GIVEREF(__pyx_v_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_18, __pyx_v_flow_dir);
        __Pyx_INCREF(__pyx_v_lookback_loc);
        __Pyx_GIVEREF(__pyx_v_lookback_loc);
        PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_18, __pyx_v_lookback_loc);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_18, __pyx_v_type_list);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5271, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5272: 
+5273:       elif recovery_source.is_Canal == 1:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_is_Canal); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_10 = __Pyx_PyInt_EqObjC(__pyx_t_4, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5273, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_11 = __Pyx_PyObject_IsTrue(__pyx_t_10); if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 5273, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (__pyx_t_11) {
/* … */
    }
    __pyx_L19:;
+5274:         new_flow_dir = canal.flow_directions['recovery'][recovery_source.name]
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_n_u_recovery); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_10); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5274, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_flow_dir, __pyx_t_7);
      __pyx_t_7 = 0;
+5275:         new_canal_size = self.canal_district_len[recovery_source.name]
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_canal_district_len); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_recovery_source, __pyx_n_s_name); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5275, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_canal_size, __pyx_t_4);
      __pyx_t_4 = 0;
+5276:         new_prev_canal = canal.key
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_key); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5276, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_new_prev_canal, __pyx_t_4);
      __pyx_t_4 = 0;
+5277:         new_lookback_range, new_starting_point = self.set_canal_range(new_flow_dir, 'recovery', recovery_source, new_prev_canal, new_canal_size)
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_set_canal_range); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5277, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_7 = NULL;
      __pyx_t_18 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_10);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_10, function);
          __pyx_t_18 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_new_flow_dir, __pyx_n_u_recovery, __pyx_v_recovery_source, __pyx_v_new_prev_canal, __pyx_v_new_canal_size};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 5+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
        PyObject *__pyx_temp[6] = {__pyx_t_7, __pyx_v_new_flow_dir, __pyx_n_u_recovery, __pyx_v_recovery_source, __pyx_v_new_prev_canal, __pyx_v_new_canal_size};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_18, 5+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      {
        __pyx_t_19 = PyTuple_New(5+__pyx_t_18); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_19, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_INCREF(__pyx_v_new_flow_dir);
        __Pyx_GIVEREF(__pyx_v_new_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_19, 0+__pyx_t_18, __pyx_v_new_flow_dir);
        __Pyx_INCREF(__pyx_n_u_recovery);
        __Pyx_GIVEREF(__pyx_n_u_recovery);
        PyTuple_SET_ITEM(__pyx_t_19, 1+__pyx_t_18, __pyx_n_u_recovery);
        __Pyx_INCREF(__pyx_v_recovery_source);
        __Pyx_GIVEREF(__pyx_v_recovery_source);
        PyTuple_SET_ITEM(__pyx_t_19, 2+__pyx_t_18, __pyx_v_recovery_source);
        __Pyx_INCREF(__pyx_v_new_prev_canal);
        __Pyx_GIVEREF(__pyx_v_new_prev_canal);
        PyTuple_SET_ITEM(__pyx_t_19, 3+__pyx_t_18, __pyx_v_new_prev_canal);
        __Pyx_INCREF(__pyx_v_new_canal_size);
        __Pyx_GIVEREF(__pyx_v_new_canal_size);
        PyTuple_SET_ITEM(__pyx_t_19, 4+__pyx_t_18, __pyx_v_new_canal_size);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_19, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      }
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 5277, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_10 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_19 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_10 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_19 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_10);
        __Pyx_INCREF(__pyx_t_19);
        #else
        __pyx_t_10 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_19 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_7 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5277, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_25 = Py_TYPE(__pyx_t_7)->tp_iternext;
        index = 0; __pyx_t_10 = __pyx_t_25(__pyx_t_7); if (unlikely(!__pyx_t_10)) goto __pyx_L50_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_10);
        index = 1; __pyx_t_19 = __pyx_t_25(__pyx_t_7); if (unlikely(!__pyx_t_19)) goto __pyx_L50_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_19);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_25(__pyx_t_7), 2) < 0) __PYX_ERR(0, 5277, __pyx_L1_error)
        __pyx_t_25 = NULL;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        goto __pyx_L51_unpacking_done;
        __pyx_L50_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_25 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 5277, __pyx_L1_error)
        __pyx_L51_unpacking_done:;
      }
      __Pyx_XDECREF_SET(__pyx_v_new_lookback_range, __pyx_t_10);
      __pyx_t_10 = 0;
      __Pyx_XDECREF_SET(__pyx_v_new_starting_point, __pyx_t_19);
      __pyx_t_19 = 0;
+5278:         location_pumpout, paper_amount = self.delivery_recovery(contract_list, recovery_source, new_lookback_range, new_starting_point, paper_fractions, direct_recovery, new_flow_dir, type_list, priority_list, contract_canal, delivery_loc_name, dowy, wateryear)
      __pyx_t_19 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delivery_recovery); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5278, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_19);
      __pyx_t_10 = NULL;
      __pyx_t_18 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_19))) {
        __pyx_t_10 = PyMethod_GET_SELF(__pyx_t_19);
        if (likely(__pyx_t_10)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_19);
          __Pyx_INCREF(__pyx_t_10);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_19, function);
          __pyx_t_18 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_19)) {
        PyObject *__pyx_temp[14] = {__pyx_t_10, __pyx_v_contract_list, __pyx_v_recovery_source, __pyx_v_new_lookback_range, __pyx_v_new_starting_point, __pyx_v_paper_fractions, __pyx_v_direct_recovery, __pyx_v_new_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_delivery_loc_name, __pyx_v_dowy, __pyx_v_wateryear};
        __pyx_t_4 = __Pyx_PyFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 13+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_19)) {
        PyObject *__pyx_temp[14] = {__pyx_t_10, __pyx_v_contract_list, __pyx_v_recovery_source, __pyx_v_new_lookback_range, __pyx_v_new_starting_point, __pyx_v_paper_fractions, __pyx_v_direct_recovery, __pyx_v_new_flow_dir, __pyx_v_type_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_delivery_loc_name, __pyx_v_dowy, __pyx_v_wateryear};
        __pyx_t_4 = __Pyx_PyCFunction_FastCall(__pyx_t_19, __pyx_temp+1-__pyx_t_18, 13+__pyx_t_18); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_GOTREF(__pyx_t_4);
      } else
      #endif
      {
        __pyx_t_7 = PyTuple_New(13+__pyx_t_18); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (__pyx_t_10) {
          __Pyx_GIVEREF(__pyx_t_10); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_10); __pyx_t_10 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_18, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_recovery_source);
        __Pyx_GIVEREF(__pyx_v_recovery_source);
        PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_18, __pyx_v_recovery_source);
        __Pyx_INCREF(__pyx_v_new_lookback_range);
        __Pyx_GIVEREF(__pyx_v_new_lookback_range);
        PyTuple_SET_ITEM(__pyx_t_7, 2+__pyx_t_18, __pyx_v_new_lookback_range);
        __Pyx_INCREF(__pyx_v_new_starting_point);
        __Pyx_GIVEREF(__pyx_v_new_starting_point);
        PyTuple_SET_ITEM(__pyx_t_7, 3+__pyx_t_18, __pyx_v_new_starting_point);
        __Pyx_INCREF(__pyx_v_paper_fractions);
        __Pyx_GIVEREF(__pyx_v_paper_fractions);
        PyTuple_SET_ITEM(__pyx_t_7, 4+__pyx_t_18, __pyx_v_paper_fractions);
        __Pyx_INCREF(__pyx_v_direct_recovery);
        __Pyx_GIVEREF(__pyx_v_direct_recovery);
        PyTuple_SET_ITEM(__pyx_t_7, 5+__pyx_t_18, __pyx_v_direct_recovery);
        __Pyx_INCREF(__pyx_v_new_flow_dir);
        __Pyx_GIVEREF(__pyx_v_new_flow_dir);
        PyTuple_SET_ITEM(__pyx_t_7, 6+__pyx_t_18, __pyx_v_new_flow_dir);
        __Pyx_INCREF(__pyx_v_type_list);
        __Pyx_GIVEREF(__pyx_v_type_list);
        PyTuple_SET_ITEM(__pyx_t_7, 7+__pyx_t_18, __pyx_v_type_list);
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_7, 8+__pyx_t_18, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_7, 9+__pyx_t_18, __pyx_v_contract_canal);
        __Pyx_INCREF(__pyx_v_delivery_loc_name);
        __Pyx_GIVEREF(__pyx_v_delivery_loc_name);
        PyTuple_SET_ITEM(__pyx_t_7, 10+__pyx_t_18, __pyx_v_delivery_loc_name);
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_7, 11+__pyx_t_18, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_7, 12+__pyx_t_18, __pyx_v_wateryear);
        __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_19, __pyx_t_7, NULL); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      }
      __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_4))) || (PyList_CheckExact(__pyx_t_4))) {
        PyObject* sequence = __pyx_t_4;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 5278, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_19 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_19 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_19);
        __Pyx_INCREF(__pyx_t_7);
        #else
        __pyx_t_19 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_19);
        __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        #endif
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_10 = PyObject_GetIter(__pyx_t_4); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5278, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_25 = Py_TYPE(__pyx_t_10)->tp_iternext;
        index = 0; __pyx_t_19 = __pyx_t_25(__pyx_t_10); if (unlikely(!__pyx_t_19)) goto __pyx_L52_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_19);
        index = 1; __pyx_t_7 = __pyx_t_25(__pyx_t_10); if (unlikely(!__pyx_t_7)) goto __pyx_L52_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_7);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_25(__pyx_t_10), 2) < 0) __PYX_ERR(0, 5278, __pyx_L1_error)
        __pyx_t_25 = NULL;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        goto __pyx_L53_unpacking_done;
        __pyx_L52_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __pyx_t_25 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 5278, __pyx_L1_error)
        __pyx_L53_unpacking_done:;
      }
      __Pyx_DECREF_SET(__pyx_v_location_pumpout, __pyx_t_19);
      __pyx_t_19 = 0;
      __Pyx_XDECREF_SET(__pyx_v_paper_amount, __pyx_t_7);
      __pyx_t_7 = 0;
+5279:         total_paper += paper_amount
      __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_total_paper, __pyx_v_paper_amount); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5279, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF_SET(__pyx_v_total_paper, __pyx_t_4);
      __pyx_t_4 = 0;
 5280: 
+5281:       available_flow += location_pumpout
    __pyx_t_4 = PyNumber_InPlaceAdd(__pyx_v_available_flow, __pyx_v_location_pumpout); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5281, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF_SET(__pyx_v_available_flow, __pyx_t_4);
    __pyx_t_4 = 0;
+5282:       canal.turnout_use[lookback_loc] += location_pumpout
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_turnout_use); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_lookback_loc);
    __pyx_t_7 = __pyx_v_lookback_loc;
    __pyx_t_19 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __pyx_t_10 = PyNumber_InPlaceAdd(__pyx_t_19, __pyx_v_location_pumpout); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_7, __pyx_t_10) < 0)) __PYX_ERR(0, 5282, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5283:       canal.flow[lookback_loc] += available_flow
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_flow); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_INCREF(__pyx_v_lookback_loc);
    __pyx_t_7 = __pyx_v_lookback_loc;
    __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_t_7); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_10);
    __pyx_t_19 = PyNumber_InPlaceAdd(__pyx_t_10, __pyx_v_available_flow); if (unlikely(!__pyx_t_19)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_19);
    __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_4, __pyx_t_7, __pyx_t_19) < 0)) __PYX_ERR(0, 5283, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_19); __pyx_t_19 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5284: 
+5285:     return available_flow, total_paper
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5285, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_v_available_flow);
  __Pyx_GIVEREF(__pyx_v_available_flow);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_v_available_flow);
  __Pyx_INCREF(__pyx_v_total_paper);
  __Pyx_GIVEREF(__pyx_v_total_paper);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_v_total_paper);
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 5286: 
+5287:   def find_node_demand_district(self, district_node, canal, canal_loc, demand_constraint, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list, toggle_district_recharge):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_91find_node_demand_district(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_91find_node_demand_district = {"find_node_demand_district", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_91find_node_demand_district, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_91find_node_demand_district(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_district_node = 0;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_canal_loc = 0;
  PyObject *__pyx_v_demand_constraint = 0;
  PyObject *__pyx_v_contract_list = 0;
  PyObject *__pyx_v_priority_list = 0;
  PyObject *__pyx_v_contract_canal = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_v_search_type = 0;
  PyObject *__pyx_v_type_list = 0;
  PyObject *__pyx_v_toggle_district_recharge = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_node_demand_district (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_district_node,&__pyx_n_s_canal,&__pyx_n_s_canal_loc,&__pyx_n_s_demand_constraint,&__pyx_n_s_contract_list,&__pyx_n_s_priority_list,&__pyx_n_s_contract_canal,&__pyx_n_s_dowy,&__pyx_n_s_wateryear,&__pyx_n_s_search_type,&__pyx_n_s_type_list,&__pyx_n_s_toggle_district_recharge,0};
    PyObject* values[13] = {0,0,0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 13: values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
        CYTHON_FALLTHROUGH;
        case 12: values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
        CYTHON_FALLTHROUGH;
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_district_node)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 1); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 2); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal_loc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 3); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_demand_constraint)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 4); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 5); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 6); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 7); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 8); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 9); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 10); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 11:
        if (likely((values[11] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 11); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 12:
        if (likely((values[12] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_toggle_district_recharge)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, 12); __PYX_ERR(0, 5287, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_node_demand_district") < 0)) __PYX_ERR(0, 5287, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 13) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
      values[11] = PyTuple_GET_ITEM(__pyx_args, 11);
      values[12] = PyTuple_GET_ITEM(__pyx_args, 12);
    }
    __pyx_v_self = values[0];
    __pyx_v_district_node = values[1];
    __pyx_v_canal = values[2];
    __pyx_v_canal_loc = values[3];
    __pyx_v_demand_constraint = values[4];
    __pyx_v_contract_list = values[5];
    __pyx_v_priority_list = values[6];
    __pyx_v_contract_canal = values[7];
    __pyx_v_dowy = values[8];
    __pyx_v_wateryear = values[9];
    __pyx_v_search_type = values[10];
    __pyx_v_type_list = values[11];
    __pyx_v_toggle_district_recharge = values[12];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_node_demand_district", 1, 13, 13, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5287, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_node_demand_district", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_90find_node_demand_district(__pyx_self, __pyx_v_self, __pyx_v_district_node, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_demand_constraint, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list, __pyx_v_toggle_district_recharge);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_90find_node_demand_district(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_district_node, PyObject *__pyx_v_canal, PyObject *__pyx_v_canal_loc, PyObject *__pyx_v_demand_constraint, PyObject *__pyx_v_contract_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_dowy, PyObject *__pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_type_list, PyObject *__pyx_v_toggle_district_recharge) {
  PyObject *__pyx_v_zz = NULL;
  PyObject *__pyx_v_find_leiu_priority_space = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_num_members = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_deliveries = NULL;
  PyObject *__pyx_v_priority_bank_space = NULL;
  PyObject *__pyx_v_priorities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__72)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_node_demand_district", 0);
  __Pyx_TraceCall("find_node_demand_district", __pyx_f[0], 5287, 0, __PYX_ERR(0, 5287, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_node_demand_district", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_zz);
  __Pyx_XDECREF(__pyx_v_find_leiu_priority_space);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_num_members);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_deliveries);
  __Pyx_XDECREF(__pyx_v_priority_bank_space);
  __Pyx_XDECREF(__pyx_v_priorities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__134 = PyTuple_Pack(21, __pyx_n_s_self, __pyx_n_s_district_node, __pyx_n_s_canal, __pyx_n_s_canal_loc, __pyx_n_s_demand_constraint, __pyx_n_s_contract_list, __pyx_n_s_priority_list, __pyx_n_s_contract_canal, __pyx_n_s_dowy, __pyx_n_s_wateryear, __pyx_n_s_search_type, __pyx_n_s_type_list, __pyx_n_s_toggle_district_recharge, __pyx_n_s_zz, __pyx_n_s_find_leiu_priority_space, __pyx_n_s_xx, __pyx_n_s_num_members, __pyx_n_s_wb_member, __pyx_n_s_deliveries, __pyx_n_s_priority_bank_space, __pyx_n_s_priorities); if (unlikely(!__pyx_tuple__134)) __PYX_ERR(0, 5287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__134);
  __Pyx_GIVEREF(__pyx_tuple__134);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_91find_node_demand_district, 0, __pyx_n_s_Model_find_node_demand_district, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__72)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5287, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_node_demand_district, __pyx_t_2) < 0) __PYX_ERR(0, 5287, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__72 = (PyObject*)__Pyx_PyCode_New(13, 0, 21, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__134, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_node_demand_district, 5287, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__72)) __PYX_ERR(0, 5287, __pyx_L1_error)
 5288: 
 5289:     #this function classifies the demand at a district node - 2 parts (i) find how much water district(s) want to apply and (ii) give each water request a priority
+5290:     for zz in type_list:
  if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
    __pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5290, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5290, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5290, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5290, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5290, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5290, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5290, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5291:       canal.demand[zz][canal_loc] = 0.0
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_zz); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5291, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_canal_loc, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5291, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 5292:     #if a district is an in-leiu bank, partners can send water to this district for banking recharge
+5293:     find_leiu_priority_space = district_node.find_leiu_priority_space
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_find_leiu_priority_space); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5293, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_find_leiu_priority_space = __pyx_t_1;
  __pyx_t_1 = 0;
+5294:     if (district_node.in_leiu_banking and search_type == "banking") or (district_node.in_leiu_banking and search_type == "recovery"):
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (!__pyx_t_7) {
    goto __pyx_L7_next_or;
  } else {
  }
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_banking, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5294, __pyx_L1_error)
  if (!__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_L7_next_or:;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_in_leiu_banking); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5294, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5294, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_7) {
  } else {
    __pyx_t_6 = __pyx_t_7;
    goto __pyx_L6_bool_binop_done;
  }
  __pyx_t_7 = (__Pyx_PyUnicode_Equals(__pyx_v_search_type, __pyx_n_u_recovery, Py_EQ)); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5294, __pyx_L1_error)
  __pyx_t_6 = __pyx_t_7;
  __pyx_L6_bool_binop_done:;
  if (__pyx_t_6) {
/* … */
    goto __pyx_L5;
  }
+5295:       for xx in district_node.participant_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5295, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = 0;
      __pyx_t_3 = NULL;
    } else {
      __pyx_t_2 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5295, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5295, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_3)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5295, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5295, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5295, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_3(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5295, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5296:         num_members = self.district_keys_len[xx]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5296, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_XDECREF_SET(__pyx_v_num_members, __pyx_t_4);
      __pyx_t_4 = 0;
+5297:         for wb_member in self.district_keys[xx]:
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5297, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5297, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_8 = 0;
        __pyx_t_9 = NULL;
      } else {
        __pyx_t_8 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5297, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_9 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5297, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_9)) {
          if (likely(PyList_CheckExact(__pyx_t_4))) {
            if (__pyx_t_8 >= PyList_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5297, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5297, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_8 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_8); __Pyx_INCREF(__pyx_t_1); __pyx_t_8++; if (unlikely(0 < 0)) __PYX_ERR(0, 5297, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_8); __pyx_t_8++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5297, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_9(__pyx_t_4);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5297, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5298:           #find if the banking partner wants to bank
+5299:           deliveries = wb_member.set_request_constraints(demand_constraint, search_type, contract_list, district_node.inleiubanked[xx], district_node.inleiucap[xx], dowy, wateryear)
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_inleiubanked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_inleiucap); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5299, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
        __pyx_t_11 = NULL;
        __pyx_t_14 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_11)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_11);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
            __pyx_t_14 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_12, __pyx_t_13, __pyx_v_dowy, __pyx_v_wateryear};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5299, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_12, __pyx_t_13, __pyx_v_dowy, __pyx_v_wateryear};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5299, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        } else
        #endif
        {
          __pyx_t_15 = PyTuple_New(7+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5299, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          if (__pyx_t_11) {
            __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_11); __pyx_t_11 = NULL;
          }
          __Pyx_INCREF(__pyx_v_demand_constraint);
          __Pyx_GIVEREF(__pyx_v_demand_constraint);
          PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_v_demand_constraint);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_t_12);
          PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_t_12);
          __Pyx_GIVEREF(__pyx_t_13);
          PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_t_13);
          __Pyx_INCREF(__pyx_v_dowy);
          __Pyx_GIVEREF(__pyx_v_dowy);
          PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_14, __pyx_v_dowy);
          __Pyx_INCREF(__pyx_v_wateryear);
          __Pyx_GIVEREF(__pyx_v_wateryear);
          PyTuple_SET_ITEM(__pyx_t_15, 6+__pyx_t_14, __pyx_v_wateryear);
          __pyx_t_12 = 0;
          __pyx_t_13 = 0;
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5299, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF_SET(__pyx_v_deliveries, __pyx_t_1);
        __pyx_t_1 = 0;
 5300:           #determine the priorities of the banking
+5301:           priority_bank_space = find_leiu_priority_space(demand_constraint, num_members, xx, toggle_district_recharge, search_type)
        __Pyx_INCREF(__pyx_v_find_leiu_priority_space);
        __pyx_t_10 = __pyx_v_find_leiu_priority_space; __pyx_t_15 = NULL;
        __pyx_t_14 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_15)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_15);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
            __pyx_t_14 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[6] = {__pyx_t_15, __pyx_v_demand_constraint, __pyx_v_num_members, __pyx_v_xx, __pyx_v_toggle_district_recharge, __pyx_v_search_type};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 5+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5301, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[6] = {__pyx_t_15, __pyx_v_demand_constraint, __pyx_v_num_members, __pyx_v_xx, __pyx_v_toggle_district_recharge, __pyx_v_search_type};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 5+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5301, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        {
          __pyx_t_13 = PyTuple_New(5+__pyx_t_14); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5301, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          if (__pyx_t_15) {
            __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_15); __pyx_t_15 = NULL;
          }
          __Pyx_INCREF(__pyx_v_demand_constraint);
          __Pyx_GIVEREF(__pyx_v_demand_constraint);
          PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_14, __pyx_v_demand_constraint);
          __Pyx_INCREF(__pyx_v_num_members);
          __Pyx_GIVEREF(__pyx_v_num_members);
          PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_14, __pyx_v_num_members);
          __Pyx_INCREF(__pyx_v_xx);
          __Pyx_GIVEREF(__pyx_v_xx);
          PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_14, __pyx_v_xx);
          __Pyx_INCREF(__pyx_v_toggle_district_recharge);
          __Pyx_GIVEREF(__pyx_v_toggle_district_recharge);
          PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_14, __pyx_v_toggle_district_recharge);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_14, __pyx_v_search_type);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5301, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF_SET(__pyx_v_priority_bank_space, __pyx_t_1);
        __pyx_t_1 = 0;
+5302:           priorities = wb_member.set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal)
        __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5302, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_10);
        __pyx_t_13 = NULL;
        __pyx_t_14 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_10))) {
          __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_10);
          if (likely(__pyx_t_13)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_10);
            __Pyx_INCREF(__pyx_t_13);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_10, function);
            __pyx_t_14 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal};
          __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5302, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_10)) {
          PyObject *__pyx_temp[8] = {__pyx_t_13, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal};
          __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_10, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5302, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_GOTREF(__pyx_t_1);
        } else
        #endif
        {
          __pyx_t_15 = PyTuple_New(7+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          if (__pyx_t_13) {
            __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_13); __pyx_t_13 = NULL;
          }
          __Pyx_INCREF(__pyx_v_priority_list);
          __Pyx_GIVEREF(__pyx_v_priority_list);
          PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_v_priority_list);
          __Pyx_INCREF(__pyx_v_contract_list);
          __Pyx_GIVEREF(__pyx_v_contract_list);
          PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_v_contract_list);
          __Pyx_INCREF(__pyx_v_priority_bank_space);
          __Pyx_GIVEREF(__pyx_v_priority_bank_space);
          PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_v_priority_bank_space);
          __Pyx_INCREF(__pyx_v_deliveries);
          __Pyx_GIVEREF(__pyx_v_deliveries);
          PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_v_deliveries);
          __Pyx_INCREF(__pyx_v_demand_constraint);
          __Pyx_GIVEREF(__pyx_v_demand_constraint);
          PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_v_demand_constraint);
          __Pyx_INCREF(__pyx_v_search_type);
          __Pyx_GIVEREF(__pyx_v_search_type);
          PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_14, __pyx_v_search_type);
          __Pyx_INCREF(__pyx_v_contract_canal);
          __Pyx_GIVEREF(__pyx_v_contract_canal);
          PyTuple_SET_ITEM(__pyx_t_15, 6+__pyx_t_14, __pyx_v_contract_canal);
          __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_10, __pyx_t_15, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5302, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
        }
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
        __Pyx_XDECREF_SET(__pyx_v_priorities, __pyx_t_1);
        __pyx_t_1 = 0;
 5303: 
+5304:           for zz in type_list:
        if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
          __pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_16 = 0;
          __pyx_t_17 = NULL;
        } else {
          __pyx_t_16 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5304, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_17 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_17)) __PYX_ERR(0, 5304, __pyx_L1_error)
        }
        for (;;) {
          if (likely(!__pyx_t_17)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_16 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_10 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5304, __pyx_L1_error)
              #else
              __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5304, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              #endif
            } else {
              if (__pyx_t_16 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_10 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_16); __Pyx_INCREF(__pyx_t_10); __pyx_t_16++; if (unlikely(0 < 0)) __PYX_ERR(0, 5304, __pyx_L1_error)
              #else
              __pyx_t_10 = PySequence_ITEM(__pyx_t_1, __pyx_t_16); __pyx_t_16++; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5304, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_10);
              #endif
            }
          } else {
            __pyx_t_10 = __pyx_t_17(__pyx_t_1);
            if (unlikely(!__pyx_t_10)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5304, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_10);
          }
          __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_10);
          __pyx_t_10 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5305:             canal.demand[zz][canal_loc] += priorities[zz]
          __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_10);
          __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_10, __pyx_v_zz); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_15);
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_INCREF(__pyx_v_canal_loc);
          __pyx_t_10 = __pyx_v_canal_loc;
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_13, __pyx_t_12); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_11);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_10, __pyx_t_11) < 0)) __PYX_ERR(0, 5305, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
          __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
          __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
 5306:           #can't purchase more than the turnout capacity
 5307: 
 5308:     else:
+5309:       deliveries =  district_node.set_request_constraints(demand_constraint, search_type, contract_list, 0.0, 999.0, dowy, wateryear)
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5309, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_1)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_1);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_v_dowy, __pyx_v_wateryear};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5309, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_1, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_float_0_0, __pyx_float_999_0, __pyx_v_dowy, __pyx_v_wateryear};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5309, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_15 = PyTuple_New(7+__pyx_t_14); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      if (__pyx_t_1) {
        __Pyx_GIVEREF(__pyx_t_1); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_1); __pyx_t_1 = NULL;
      }
      __Pyx_INCREF(__pyx_v_demand_constraint);
      __Pyx_GIVEREF(__pyx_v_demand_constraint);
      PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_14, __pyx_v_demand_constraint);
      __Pyx_INCREF(__pyx_v_search_type);
      __Pyx_GIVEREF(__pyx_v_search_type);
      PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_14, __pyx_v_search_type);
      __Pyx_INCREF(__pyx_v_contract_list);
      __Pyx_GIVEREF(__pyx_v_contract_list);
      PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_14, __pyx_v_contract_list);
      __Pyx_INCREF(__pyx_float_0_0);
      __Pyx_GIVEREF(__pyx_float_0_0);
      PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_14, __pyx_float_0_0);
      __Pyx_INCREF(__pyx_float_999_0);
      __Pyx_GIVEREF(__pyx_float_999_0);
      PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_14, __pyx_float_999_0);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_14, __pyx_v_dowy);
      __Pyx_INCREF(__pyx_v_wateryear);
      __Pyx_GIVEREF(__pyx_v_wateryear);
      PyTuple_SET_ITEM(__pyx_t_15, 6+__pyx_t_14, __pyx_v_wateryear);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5309, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_deliveries = __pyx_t_5;
    __pyx_t_5 = 0;
 5310:       #find what priority district has for flow purchases
+5311:       priorities = district_node.set_demand_priority(priority_list, contract_list, demand_constraint, deliveries, demand_constraint, search_type, contract_canal)
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_node, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5311, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_15 = NULL;
    __pyx_t_14 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
      __pyx_t_15 = PyMethod_GET_SELF(__pyx_t_4);
      if (likely(__pyx_t_15)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_15);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_4, function);
        __pyx_t_14 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_demand_constraint, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal};
      __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5311, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
      PyObject *__pyx_temp[8] = {__pyx_t_15, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_demand_constraint, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal};
      __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_14, 7+__pyx_t_14); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5311, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_GOTREF(__pyx_t_5);
    } else
    #endif
    {
      __pyx_t_1 = PyTuple_New(7+__pyx_t_14); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5311, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__pyx_t_15) {
        __Pyx_GIVEREF(__pyx_t_15); PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_15); __pyx_t_15 = NULL;
      }
      __Pyx_INCREF(__pyx_v_priority_list);
      __Pyx_GIVEREF(__pyx_v_priority_list);
      PyTuple_SET_ITEM(__pyx_t_1, 0+__pyx_t_14, __pyx_v_priority_list);
      __Pyx_INCREF(__pyx_v_contract_list);
      __Pyx_GIVEREF(__pyx_v_contract_list);
      PyTuple_SET_ITEM(__pyx_t_1, 1+__pyx_t_14, __pyx_v_contract_list);
      __Pyx_INCREF(__pyx_v_demand_constraint);
      __Pyx_GIVEREF(__pyx_v_demand_constraint);
      PyTuple_SET_ITEM(__pyx_t_1, 2+__pyx_t_14, __pyx_v_demand_constraint);
      __Pyx_INCREF(__pyx_v_deliveries);
      __Pyx_GIVEREF(__pyx_v_deliveries);
      PyTuple_SET_ITEM(__pyx_t_1, 3+__pyx_t_14, __pyx_v_deliveries);
      __Pyx_INCREF(__pyx_v_demand_constraint);
      __Pyx_GIVEREF(__pyx_v_demand_constraint);
      PyTuple_SET_ITEM(__pyx_t_1, 4+__pyx_t_14, __pyx_v_demand_constraint);
      __Pyx_INCREF(__pyx_v_search_type);
      __Pyx_GIVEREF(__pyx_v_search_type);
      PyTuple_SET_ITEM(__pyx_t_1, 5+__pyx_t_14, __pyx_v_search_type);
      __Pyx_INCREF(__pyx_v_contract_canal);
      __Pyx_GIVEREF(__pyx_v_contract_canal);
      PyTuple_SET_ITEM(__pyx_t_1, 6+__pyx_t_14, __pyx_v_contract_canal);
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_1, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5311, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_priorities = __pyx_t_5;
    __pyx_t_5 = 0;
 5312: 
+5313:       for zz in type_list:
    if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
      __pyx_t_5 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = 0;
      __pyx_t_3 = NULL;
    } else {
      __pyx_t_2 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5313, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5313, __pyx_L1_error)
    }
    for (;;) {
      if (likely(!__pyx_t_3)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5313, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        } else {
          if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5313, __pyx_L1_error)
          #else
          __pyx_t_4 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5313, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_4);
          #endif
        }
      } else {
        __pyx_t_4 = __pyx_t_3(__pyx_t_5);
        if (unlikely(!__pyx_t_4)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5313, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_4);
      }
      __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
      __pyx_t_4 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __pyx_L5:;
+5314:         canal.demand[zz][canal_loc] += priorities[zz]
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_zz); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_INCREF(__pyx_v_canal_loc);
      __pyx_t_4 = __pyx_v_canal_loc;
      __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_15);
      __pyx_t_10 = __Pyx_PyObject_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = PyNumber_InPlaceAdd(__pyx_t_15, __pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_t_4, __pyx_t_11) < 0)) __PYX_ERR(0, 5314, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5315: 
+5316:   def find_node_demand_bank(self, bank_node, canal, canal_loc, contract_list, priority_list, contract_canal, dowy, wateryear, search_type, type_list):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_93find_node_demand_bank(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_93find_node_demand_bank = {"find_node_demand_bank", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_93find_node_demand_bank, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_93find_node_demand_bank(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_bank_node = 0;
  PyObject *__pyx_v_canal = 0;
  PyObject *__pyx_v_canal_loc = 0;
  PyObject *__pyx_v_contract_list = 0;
  PyObject *__pyx_v_priority_list = 0;
  PyObject *__pyx_v_contract_canal = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_v_search_type = 0;
  PyObject *__pyx_v_type_list = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_node_demand_bank (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_bank_node,&__pyx_n_s_canal,&__pyx_n_s_canal_loc,&__pyx_n_s_contract_list,&__pyx_n_s_priority_list,&__pyx_n_s_contract_canal,&__pyx_n_s_dowy,&__pyx_n_s_wateryear,&__pyx_n_s_search_type,&__pyx_n_s_type_list,0};
    PyObject* values[11] = {0,0,0,0,0,0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case 11: values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
        CYTHON_FALLTHROUGH;
        case 10: values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
        CYTHON_FALLTHROUGH;
        case  9: values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
        CYTHON_FALLTHROUGH;
        case  8: values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
        CYTHON_FALLTHROUGH;
        case  7: values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
        CYTHON_FALLTHROUGH;
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_bank_node)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 1); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 2); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_canal_loc)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 3); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 4); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_priority_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 5); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  6:
        if (likely((values[6] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_contract_canal)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 6); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  7:
        if (likely((values[7] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 7); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  8:
        if (likely((values[8] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 8); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  9:
        if (likely((values[9] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_search_type)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 9); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case 10:
        if (likely((values[10] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_type_list)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, 10); __PYX_ERR(0, 5316, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_node_demand_bank") < 0)) __PYX_ERR(0, 5316, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 11) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
      values[6] = PyTuple_GET_ITEM(__pyx_args, 6);
      values[7] = PyTuple_GET_ITEM(__pyx_args, 7);
      values[8] = PyTuple_GET_ITEM(__pyx_args, 8);
      values[9] = PyTuple_GET_ITEM(__pyx_args, 9);
      values[10] = PyTuple_GET_ITEM(__pyx_args, 10);
    }
    __pyx_v_self = values[0];
    __pyx_v_bank_node = values[1];
    __pyx_v_canal = values[2];
    __pyx_v_canal_loc = values[3];
    __pyx_v_contract_list = values[4];
    __pyx_v_priority_list = values[5];
    __pyx_v_contract_canal = values[6];
    __pyx_v_dowy = values[7];
    __pyx_v_wateryear = values[8];
    __pyx_v_search_type = values[9];
    __pyx_v_type_list = values[10];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_node_demand_bank", 1, 11, 11, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5316, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_node_demand_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_92find_node_demand_bank(__pyx_self, __pyx_v_self, __pyx_v_bank_node, __pyx_v_canal, __pyx_v_canal_loc, __pyx_v_contract_list, __pyx_v_priority_list, __pyx_v_contract_canal, __pyx_v_dowy, __pyx_v_wateryear, __pyx_v_search_type, __pyx_v_type_list);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_92find_node_demand_bank(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_bank_node, PyObject *__pyx_v_canal, PyObject *__pyx_v_canal_loc, PyObject *__pyx_v_contract_list, PyObject *__pyx_v_priority_list, PyObject *__pyx_v_contract_canal, PyObject *__pyx_v_dowy, PyObject *__pyx_v_wateryear, PyObject *__pyx_v_search_type, PyObject *__pyx_v_type_list) {
  PyObject *__pyx_v_zz = NULL;
  PyObject *__pyx_v_find_node_demand = NULL;
  PyObject *__pyx_v_find_priority_space = NULL;
  PyObject *__pyx_v_set_demand_priority = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_num_members = NULL;
  PyObject *__pyx_v_wb_member = NULL;
  PyObject *__pyx_v_demand_constraint = NULL;
  PyObject *__pyx_v_deliveries = NULL;
  PyObject *__pyx_v_priority_bank_space = NULL;
  PyObject *__pyx_v_priorities = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__73)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_node_demand_bank", 0);
  __Pyx_TraceCall("find_node_demand_bank", __pyx_f[0], 5316, 0, __PYX_ERR(0, 5316, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_node_demand_bank", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_zz);
  __Pyx_XDECREF(__pyx_v_find_node_demand);
  __Pyx_XDECREF(__pyx_v_find_priority_space);
  __Pyx_XDECREF(__pyx_v_set_demand_priority);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_num_members);
  __Pyx_XDECREF(__pyx_v_wb_member);
  __Pyx_XDECREF(__pyx_v_demand_constraint);
  __Pyx_XDECREF(__pyx_v_deliveries);
  __Pyx_XDECREF(__pyx_v_priority_bank_space);
  __Pyx_XDECREF(__pyx_v_priorities);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__135 = PyTuple_Pack(22, __pyx_n_s_self, __pyx_n_s_bank_node, __pyx_n_s_canal, __pyx_n_s_canal_loc, __pyx_n_s_contract_list, __pyx_n_s_priority_list, __pyx_n_s_contract_canal, __pyx_n_s_dowy, __pyx_n_s_wateryear, __pyx_n_s_search_type, __pyx_n_s_type_list, __pyx_n_s_zz, __pyx_n_s_find_node_demand, __pyx_n_s_find_priority_space, __pyx_n_s_set_demand_priority, __pyx_n_s_xx, __pyx_n_s_num_members, __pyx_n_s_wb_member, __pyx_n_s_demand_constraint, __pyx_n_s_deliveries, __pyx_n_s_priority_bank_space, __pyx_n_s_priorities); if (unlikely(!__pyx_tuple__135)) __PYX_ERR(0, 5316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__135);
  __Pyx_GIVEREF(__pyx_tuple__135);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_93find_node_demand_bank, 0, __pyx_n_s_Model_find_node_demand_bank, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__73)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5316, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_node_demand_bank, __pyx_t_2) < 0) __PYX_ERR(0, 5316, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__73 = (PyObject*)__Pyx_PyCode_New(11, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__135, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_node_demand_bank, 5316, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__73)) __PYX_ERR(0, 5316, __pyx_L1_error)
 5317:     #this function finds the total demand at a waterbank node - 3 parts (i) find total water that can be taken (ii) find how much water district(s) want to apply (iii) give each water request a priority  
 5318:     #for waterbanks, we calculate the demands of each waterbank partner individually
+5319:     for zz in type_list:
  if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
    __pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5319, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5319, __pyx_L1_error)
  }
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_1))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5319, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5319, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_4 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_2); __Pyx_INCREF(__pyx_t_4); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5319, __pyx_L1_error)
        #else
        __pyx_t_4 = PySequence_ITEM(__pyx_t_1, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5319, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        #endif
      }
    } else {
      __pyx_t_4 = __pyx_t_3(__pyx_t_1);
      if (unlikely(!__pyx_t_4)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5319, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_4);
    }
    __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_4);
    __pyx_t_4 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5320:       canal.demand[zz][canal_loc] = 0.0
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_zz); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5320, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_canal_loc, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5320, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 5321: 
+5322:     find_node_demand = bank_node.find_node_demand
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_find_node_demand); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5322, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_find_node_demand = __pyx_t_1;
  __pyx_t_1 = 0;
+5323:     find_priority_space = bank_node.find_priority_space
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_find_priority_space); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5323, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_find_priority_space = __pyx_t_1;
  __pyx_t_1 = 0;
+5324:     set_demand_priority = bank_node.set_demand_priority
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_set_demand_priority); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5324, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_set_demand_priority = __pyx_t_1;
  __pyx_t_1 = 0;
+5325:     for xx in bank_node.participant_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_participant_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5325, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_2 = 0;
    __pyx_t_3 = NULL;
  } else {
    __pyx_t_2 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5325, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_3 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5325, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_3)) {
      if (likely(PyList_CheckExact(__pyx_t_5))) {
        if (__pyx_t_2 >= PyList_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5325, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_2 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_2); __Pyx_INCREF(__pyx_t_1); __pyx_t_2++; if (unlikely(0 < 0)) __PYX_ERR(0, 5325, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_2); __pyx_t_2++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5325, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_3(__pyx_t_5);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5325, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5326:       num_members = self.district_keys_len[xx]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys_len); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5326, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_XDECREF_SET(__pyx_v_num_members, __pyx_t_4);
    __pyx_t_4 = 0;
+5327:       for wb_member in self.district_keys[xx]:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_xx); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5327, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_4 = __pyx_t_1; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
      __pyx_t_7 = NULL;
    } else {
      __pyx_t_6 = -1; __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5327, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = Py_TYPE(__pyx_t_4)->tp_iternext; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5327, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_7)) {
        if (likely(PyList_CheckExact(__pyx_t_4))) {
          if (__pyx_t_6 >= PyList_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5327, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5327, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_6 >= PyTuple_GET_SIZE(__pyx_t_4)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_1); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5327, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5327, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_7(__pyx_t_4);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5327, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_wb_member, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5328:         #find waterbank partner demand (i.e., recharge capacity of their ownership share)
+5329:         demand_constraint = find_node_demand(contract_list, xx, num_members, search_type)
      __Pyx_INCREF(__pyx_v_find_node_demand);
      __pyx_t_8 = __pyx_v_find_node_demand; __pyx_t_9 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5329, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[5] = {__pyx_t_9, __pyx_v_contract_list, __pyx_v_xx, __pyx_v_num_members, __pyx_v_search_type};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 4+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5329, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_11 = PyTuple_New(4+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5329, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        if (__pyx_t_9) {
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
        }
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_xx);
        __Pyx_INCREF(__pyx_v_num_members);
        __Pyx_GIVEREF(__pyx_v_num_members);
        PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_num_members);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_v_search_type);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5329, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_demand_constraint, __pyx_t_1);
      __pyx_t_1 = 0;
 5330:         #does this partner want to bank water?
+5331:         deliveries =  wb_member.set_request_constraints(demand_constraint, search_type, contract_list, bank_node.banked[xx], bank_node.bank_cap[xx], dowy, wateryear)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_set_request_constraints); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5331, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_banked); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5331, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_9 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5331, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = __Pyx_PyObject_GetAttrStr(__pyx_v_bank_node, __pyx_n_s_bank_cap); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5331, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5331, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_9, __pyx_t_12, __pyx_v_dowy, __pyx_v_wateryear};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 7+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5331, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[8] = {__pyx_t_11, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_list, __pyx_t_9, __pyx_t_12, __pyx_v_dowy, __pyx_v_wateryear};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 7+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5331, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      } else
      #endif
      {
        __pyx_t_13 = PyTuple_New(7+__pyx_t_10); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5331, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (__pyx_t_11) {
          __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
        }
        __Pyx_INCREF(__pyx_v_demand_constraint);
        __Pyx_GIVEREF(__pyx_v_demand_constraint);
        PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_10, __pyx_v_demand_constraint);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_10, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_10, __pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_10, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_12);
        PyTuple_SET_ITEM(__pyx_t_13, 4+__pyx_t_10, __pyx_t_12);
        __Pyx_INCREF(__pyx_v_dowy);
        __Pyx_GIVEREF(__pyx_v_dowy);
        PyTuple_SET_ITEM(__pyx_t_13, 5+__pyx_t_10, __pyx_v_dowy);
        __Pyx_INCREF(__pyx_v_wateryear);
        __Pyx_GIVEREF(__pyx_v_wateryear);
        PyTuple_SET_ITEM(__pyx_t_13, 6+__pyx_t_10, __pyx_v_wateryear);
        __pyx_t_9 = 0;
        __pyx_t_12 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_13, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5331, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_deliveries, __pyx_t_1);
      __pyx_t_1 = 0;
 5332:           #deliveries = bank_node.set_request_constraints(demand_constraint, search_type, contract_list)
 5333:         #what is their priority over the water/canal space?
+5334:         priority_bank_space = find_priority_space(num_members, xx, search_type)
      __Pyx_INCREF(__pyx_v_find_priority_space);
      __pyx_t_8 = __pyx_v_find_priority_space; __pyx_t_13 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_13 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_13)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_13);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_num_members, __pyx_v_xx, __pyx_v_search_type};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5334, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
        PyObject *__pyx_temp[4] = {__pyx_t_13, __pyx_v_num_members, __pyx_v_xx, __pyx_v_search_type};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_10, 3+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5334, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_GOTREF(__pyx_t_1);
      } else
      #endif
      {
        __pyx_t_12 = PyTuple_New(3+__pyx_t_10); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5334, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (__pyx_t_13) {
          __Pyx_GIVEREF(__pyx_t_13); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_13); __pyx_t_13 = NULL;
        }
        __Pyx_INCREF(__pyx_v_num_members);
        __Pyx_GIVEREF(__pyx_v_num_members);
        PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_10, __pyx_v_num_members);
        __Pyx_INCREF(__pyx_v_xx);
        __Pyx_GIVEREF(__pyx_v_xx);
        PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_10, __pyx_v_xx);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_10, __pyx_v_search_type);
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_12, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5334, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_priority_bank_space, __pyx_t_1);
      __pyx_t_1 = 0;
+5335:         priorities = set_demand_priority(priority_list, contract_list, priority_bank_space, deliveries, demand_constraint, search_type, contract_canal, canal.name, wb_member.contract_list)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5335, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_wb_member, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5335, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_INCREF(__pyx_v_set_demand_priority);
      __pyx_t_13 = __pyx_v_set_demand_priority; __pyx_t_9 = NULL;
      __pyx_t_10 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
        __pyx_t_9 = PyMethod_GET_SELF(__pyx_t_13);
        if (likely(__pyx_t_9)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
          __Pyx_INCREF(__pyx_t_9);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_13, function);
          __pyx_t_10 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_13)) {
        PyObject *__pyx_temp[10] = {__pyx_t_9, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_12};
        __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_10, 9+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5335, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
        PyObject *__pyx_temp[10] = {__pyx_t_9, __pyx_v_priority_list, __pyx_v_contract_list, __pyx_v_priority_bank_space, __pyx_v_deliveries, __pyx_v_demand_constraint, __pyx_v_search_type, __pyx_v_contract_canal, __pyx_t_8, __pyx_t_12};
        __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_10, 9+__pyx_t_10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5335, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      } else
      #endif
      {
        __pyx_t_11 = PyTuple_New(9+__pyx_t_10); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        if (__pyx_t_9) {
          __Pyx_GIVEREF(__pyx_t_9); PyTuple_SET_ITEM(__pyx_t_11, 0, __pyx_t_9); __pyx_t_9 = NULL;
        }
        __Pyx_INCREF(__pyx_v_priority_list);
        __Pyx_GIVEREF(__pyx_v_priority_list);
        PyTuple_SET_ITEM(__pyx_t_11, 0+__pyx_t_10, __pyx_v_priority_list);
        __Pyx_INCREF(__pyx_v_contract_list);
        __Pyx_GIVEREF(__pyx_v_contract_list);
        PyTuple_SET_ITEM(__pyx_t_11, 1+__pyx_t_10, __pyx_v_contract_list);
        __Pyx_INCREF(__pyx_v_priority_bank_space);
        __Pyx_GIVEREF(__pyx_v_priority_bank_space);
        PyTuple_SET_ITEM(__pyx_t_11, 2+__pyx_t_10, __pyx_v_priority_bank_space);
        __Pyx_INCREF(__pyx_v_deliveries);
        __Pyx_GIVEREF(__pyx_v_deliveries);
        PyTuple_SET_ITEM(__pyx_t_11, 3+__pyx_t_10, __pyx_v_deliveries);
        __Pyx_INCREF(__pyx_v_demand_constraint);
        __Pyx_GIVEREF(__pyx_v_demand_constraint);
        PyTuple_SET_ITEM(__pyx_t_11, 4+__pyx_t_10, __pyx_v_demand_constraint);
        __Pyx_INCREF(__pyx_v_search_type);
        __Pyx_GIVEREF(__pyx_v_search_type);
        PyTuple_SET_ITEM(__pyx_t_11, 5+__pyx_t_10, __pyx_v_search_type);
        __Pyx_INCREF(__pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_v_contract_canal);
        PyTuple_SET_ITEM(__pyx_t_11, 6+__pyx_t_10, __pyx_v_contract_canal);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_11, 7+__pyx_t_10, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_12);
        PyTuple_SET_ITEM(__pyx_t_11, 8+__pyx_t_10, __pyx_t_12);
        __pyx_t_8 = 0;
        __pyx_t_12 = 0;
        __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_11, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5335, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      }
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      __Pyx_XDECREF_SET(__pyx_v_priorities, __pyx_t_1);
      __pyx_t_1 = 0;
 5336:         #take the individual priorities of waterbank members and add them to the total canal node demands
 5337: 
+5338:         for zz in type_list:
      if (likely(PyList_CheckExact(__pyx_v_type_list)) || PyTuple_CheckExact(__pyx_v_type_list)) {
        __pyx_t_1 = __pyx_v_type_list; __Pyx_INCREF(__pyx_t_1); __pyx_t_14 = 0;
        __pyx_t_15 = NULL;
      } else {
        __pyx_t_14 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_v_type_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5338, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_15 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5338, __pyx_L1_error)
      }
      for (;;) {
        if (likely(!__pyx_t_15)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_13 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5338, __pyx_L1_error)
            #else
            __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5338, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          } else {
            if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5338, __pyx_L1_error)
            #else
            __pyx_t_13 = PySequence_ITEM(__pyx_t_1, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5338, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            #endif
          }
        } else {
          __pyx_t_13 = __pyx_t_15(__pyx_t_1);
          if (unlikely(!__pyx_t_13)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5338, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_13);
        }
        __Pyx_XDECREF_SET(__pyx_v_zz, __pyx_t_13);
        __pyx_t_13 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5339:           canal.demand[zz][canal_loc] += priorities[zz]
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_canal, __pyx_n_s_demand); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_11 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_zz); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_11);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_INCREF(__pyx_v_canal_loc);
        __pyx_t_13 = __pyx_v_canal_loc;
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_11, __pyx_t_13); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_v_priorities, __pyx_v_zz); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_9 = PyNumber_InPlaceAdd(__pyx_t_12, __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_9);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (unlikely(PyObject_SetItem(__pyx_t_11, __pyx_t_13, __pyx_t_9) < 0)) __PYX_ERR(0, 5339, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
 5340: 
 5341: #####################################################################################################################
 5342: #####################################################################################################################
 5343: #####################################################################################################################
 5344: 
 5345: 
 5346: 
 5347: #####################################################################################################################
 5348: #####################################################################################################################
 5349: #####################################################################################################################
 5350: 
 5351: 
 5352: #####################################################################################################################
 5353: ###############################  Miscellaneous Functions Within Simulation ###############################
 5354: #####################################################################################################################
+5355:   def set_regulations_current_south(self, scenario):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_95set_regulations_current_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_95set_regulations_current_south = {"set_regulations_current_south", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_95set_regulations_current_south, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_95set_regulations_current_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_current_south (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scenario,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_regulations_current_south", 1, 2, 2, 1); __PYX_ERR(0, 5355, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_regulations_current_south") < 0)) __PYX_ERR(0, 5355, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_scenario = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_regulations_current_south", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5355, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_current_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_94set_regulations_current_south(__pyx_self, __pyx_v_self, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_94set_regulations_current_south(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_scenario) {
  PyObject *__pyx_v_xnum = NULL;
  CYTHON_UNUSED double __pyx_v_tot_contract;
  PyObject *__pyx_v_district = NULL;
  PyObject *__pyx_v_waterbanks = NULL;
  Py_ssize_t __pyx_v_x;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__74)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_current_south", 0);
  __Pyx_TraceCall("set_regulations_current_south", __pyx_f[0], 5355, 0, __PYX_ERR(0, 5355, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_10);
  __Pyx_XDECREF(__pyx_t_11);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_current_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_xnum);
  __Pyx_XDECREF(__pyx_v_district);
  __Pyx_XDECREF(__pyx_v_waterbanks);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__136 = PyTuple_Pack(7, __pyx_n_s_self, __pyx_n_s_scenario, __pyx_n_s_xnum, __pyx_n_s_tot_contract, __pyx_n_s_district, __pyx_n_s_waterbanks, __pyx_n_s_x); if (unlikely(!__pyx_tuple__136)) __PYX_ERR(0, 5355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__136);
  __Pyx_GIVEREF(__pyx_tuple__136);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_95set_regulations_current_south, 0, __pyx_n_s_Model_set_regulations_current_so, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__74)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5355, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_regulations_current_south, __pyx_t_2) < 0) __PYX_ERR(0, 5355, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__74 = (PyObject*)__Pyx_PyCode_New(2, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__136, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_regulations_current_south, 5355, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__74)) __PYX_ERR(0, 5355, __pyx_L1_error)
+5356:     self.semitropic.leiu_recovery = 0.7945
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5356, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_leiu_recovery, __pyx_float_0_7945) < 0) __PYX_ERR(0, 5356, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5357:     self.isabella.capacity = 361.25
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5357, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_capacity, __pyx_float_361_25) < 0) __PYX_ERR(0, 5357, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5358:     self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6],  [302.6,170,170,245,245,361.25,361.25,302.6]]
  __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_float_302_6);
  __Pyx_GIVEREF(__pyx_float_302_6);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_302_6);
  __Pyx_INCREF(__pyx_int_170);
  __Pyx_GIVEREF(__pyx_int_170);
  PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_170);
  __Pyx_INCREF(__pyx_int_170);
  __Pyx_GIVEREF(__pyx_int_170);
  PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_170);
  __Pyx_INCREF(__pyx_int_245);
  __Pyx_GIVEREF(__pyx_int_245);
  PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_245);
  __Pyx_INCREF(__pyx_int_245);
  __Pyx_GIVEREF(__pyx_int_245);
  PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_245);
  __Pyx_INCREF(__pyx_float_361_25);
  __Pyx_GIVEREF(__pyx_float_361_25);
  PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_361_25);
  __Pyx_INCREF(__pyx_float_361_25);
  __Pyx_GIVEREF(__pyx_float_361_25);
  PyList_SET_ITEM(__pyx_t_1, 6, __pyx_float_361_25);
  __Pyx_INCREF(__pyx_float_302_6);
  __Pyx_GIVEREF(__pyx_float_302_6);
  PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_302_6);
  __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_INCREF(__pyx_float_302_6);
  __Pyx_GIVEREF(__pyx_float_302_6);
  PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_302_6);
  __Pyx_INCREF(__pyx_int_170);
  __Pyx_GIVEREF(__pyx_int_170);
  PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_170);
  __Pyx_INCREF(__pyx_int_170);
  __Pyx_GIVEREF(__pyx_int_170);
  PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_170);
  __Pyx_INCREF(__pyx_int_245);
  __Pyx_GIVEREF(__pyx_int_245);
  PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_245);
  __Pyx_INCREF(__pyx_int_245);
  __Pyx_GIVEREF(__pyx_int_245);
  PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_245);
  __Pyx_INCREF(__pyx_float_361_25);
  __Pyx_GIVEREF(__pyx_float_361_25);
  PyList_SET_ITEM(__pyx_t_2, 5, __pyx_float_361_25);
  __Pyx_INCREF(__pyx_float_361_25);
  __Pyx_GIVEREF(__pyx_float_361_25);
  PyList_SET_ITEM(__pyx_t_2, 6, __pyx_float_361_25);
  __Pyx_INCREF(__pyx_float_302_6);
  __Pyx_GIVEREF(__pyx_float_302_6);
  PyList_SET_ITEM(__pyx_t_2, 7, __pyx_float_302_6);
  __pyx_t_3 = PyList_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_1);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_storage, __pyx_t_3) < 0)) __PYX_ERR(0, 5358, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5359:     self.poso.initial_recharge = 420.0
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5359, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_initial_recharge, __pyx_float_420_0) < 0) __PYX_ERR(0, 5359, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5360:     self.poso.recovery = 0.6942
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5360, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_recovery, __pyx_float_0_6942) < 0) __PYX_ERR(0, 5360, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5361:     self.poso.tot_storage = 2.1
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5361, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_tot_storage, __pyx_float_2_1) < 0) __PYX_ERR(0, 5361, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5362:     self.irvineranch.initial_recharge = 300.0
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5362, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_initial_recharge, __pyx_float_300_0) < 0) __PYX_ERR(0, 5362, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5363:     self.irvineranch.recovery = 0.0479
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5363, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_recovery, __pyx_float_0_0479) < 0) __PYX_ERR(0, 5363, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5364:     self.irvineranch.tot_storage = 0.594
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5364, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_tot_storage, __pyx_float_0_594) < 0) __PYX_ERR(0, 5364, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5365:     self.losthills.project_contract['tableA'] = 0.0293663708
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_losthills); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5365, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5365, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5366:     self.wheeler.project_contract['tableA'] =  0.04858926015
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wheeler); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5366, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5366, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5367:     self.belridge.project_contract['tableA'] = 0.02995607
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5367, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5367, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5368:     self.southbay.project_contract['tableA'] = 0.0548863
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5368, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5368, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5369:     self.westkern.project_contract['tableA'] = 0.00776587
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westkern); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5370:     self.berrenda.project_contract['tableA'] =  0.02282922
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5371:     self.socal.project_contract['tableA'] = 0.648310
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5372:     for xnum in range(0, self.number_years):
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_int_0);
  __Pyx_GIVEREF(__pyx_int_0);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_int_0);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5372, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
    __pyx_t_5 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5372, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5372, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_5)) {
      if (likely(PyList_CheckExact(__pyx_t_3))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5372, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5372, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5372, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5372, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_5(__pyx_t_3);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5372, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_xnum, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5373:       self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.648310)
    __pyx_t_1 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_SOC); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5373, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_xnum, __pyx_t_1) < 0)) __PYX_ERR(0, 5373, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5374:       self.metropolitan.pump_out_fraction['SOC'] = 1911.0/(4056.0 * 0.648310)
    __pyx_t_1 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pump_out_fraction); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5374, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_SOC, __pyx_t_1) < 0)) __PYX_ERR(0, 5374, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5375:     self.socal.private_fraction =  [(1911.0 + (0.03629 + 0.05274) * 4056.0 * 0.648310) / (4056.0 * 0.648310)]
  __pyx_t_3 = PyFloat_FromDouble(((1911.0 + (((0.03629 + 0.05274) * 4056.0) * 0.648310)) / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5375, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_private_fraction, __pyx_t_1) < 0) __PYX_ERR(0, 5375, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 5376: 
+5377:     self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_800_0);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_800_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_float_0_0);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5377, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_normal, __pyx_t_3) < 0)) __PYX_ERR(0, 5377, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5378:     self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_440_0);
  __Pyx_GIVEREF(__pyx_float_440_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_440_0);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_800_0);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_float_800_0);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_capacity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5378, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_reverse, __pyx_t_3) < 0)) __PYX_ERR(0, 5378, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5379:     self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
  __pyx_t_3 = PyList_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 3, __pyx_float_0_0);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5379, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_closed, __pyx_t_3) < 0)) __PYX_ERR(0, 5379, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5380:     self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_800_0);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_800_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_0_0);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5380, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_normal, __pyx_t_3) < 0)) __PYX_ERR(0, 5380, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5381:     self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_440_0);
  __Pyx_GIVEREF(__pyx_float_440_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_440_0);
  __Pyx_INCREF(__pyx_float_800_0);
  __Pyx_GIVEREF(__pyx_float_800_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_800_0);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_turnout); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5381, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_reverse, __pyx_t_3) < 0)) __PYX_ERR(0, 5381, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5382:     self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
  __pyx_t_3 = PyList_New(3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 0, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 1, __pyx_float_0_0);
  __Pyx_INCREF(__pyx_float_0_0);
  __Pyx_GIVEREF(__pyx_float_0_0);
  PyList_SET_ITEM(__pyx_t_3, 2, __pyx_float_0_0);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5382, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_closed, __pyx_t_3) < 0)) __PYX_ERR(0, 5382, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5383:     self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5383, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5383, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5384:     self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5384, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5384, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5385:     self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5385, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5385, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5386:     self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recovery); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5386, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5386, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5387:     self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recharge); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5387, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_xvc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5387, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5388:     self.kwb.initial_recharge = 1212.12
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5388, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_initial_recharge, __pyx_float_1212_12) < 0) __PYX_ERR(0, 5388, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5389:     self.kwb.recovery = 0.7863
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5389, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_recovery, __pyx_float_0_7863) < 0) __PYX_ERR(0, 5389, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5390:     self.kwb.tot_storage = 2.4
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5390, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_3, __pyx_n_s_tot_storage, __pyx_float_2_4) < 0) __PYX_ERR(0, 5390, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5391:     tot_contract = 0.0
  __pyx_v_tot_contract = 0.0;
 5392: 
+5393:     if self.use_sensitivity:
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_use_sensitivity); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5393, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5393, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_7) {
/* … */
  }
+5394:       for district in self.district_list:
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5394, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    if (likely(PyList_CheckExact(__pyx_t_3)) || PyTuple_CheckExact(__pyx_t_3)) {
      __pyx_t_1 = __pyx_t_3; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_5 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5394, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5394, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    for (;;) {
      if (likely(!__pyx_t_5)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5394, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5394, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_3); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5394, __pyx_L1_error)
          #else
          __pyx_t_3 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5394, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_3);
          #endif
        }
      } else {
        __pyx_t_3 = __pyx_t_5(__pyx_t_1);
        if (unlikely(!__pyx_t_3)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5394, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_3);
      }
      __Pyx_XDECREF_SET(__pyx_v_district, __pyx_t_3);
      __pyx_t_3 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5395:         district.set_sensitivity_factors(self.sensitivity_factors['et_multiplier']['realization'], self.sensitivity_factors['acreage_multiplier']['realization'], self.sensitivity_factors['irrigation_efficiency']['realization'], self.sensitivity_factors['recharge_decline']['realization'])
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district, __pyx_n_s_set_sensitivity_factors); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_et_multiplier); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_realization); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_acreage_multiplier); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_realization); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_9, __pyx_n_u_irrigation_efficiency); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_9 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_n_u_realization); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __pyx_t_11 = __Pyx_PyObject_Dict_GetItem(__pyx_t_10, __pyx_n_u_recharge_decline); if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_11);
      __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      __pyx_t_10 = __Pyx_PyObject_Dict_GetItem(__pyx_t_11, __pyx_n_u_realization); if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5395, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_10);
      __Pyx_DECREF(__pyx_t_11); __pyx_t_11 = 0;
      __pyx_t_11 = NULL;
      __pyx_t_12 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_11 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_11)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_11);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
          __pyx_t_12 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_t_2, __pyx_t_8, __pyx_t_9, __pyx_t_10};
        __pyx_t_3 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5395, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
        PyObject *__pyx_temp[5] = {__pyx_t_11, __pyx_t_2, __pyx_t_8, __pyx_t_9, __pyx_t_10};
        __pyx_t_3 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_12, 4+__pyx_t_12); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5395, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_11); __pyx_t_11 = 0;
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
        __Pyx_DECREF(__pyx_t_10); __pyx_t_10 = 0;
      } else
      #endif
      {
        __pyx_t_13 = PyTuple_New(4+__pyx_t_12); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5395, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (__pyx_t_11) {
          __Pyx_GIVEREF(__pyx_t_11); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_11); __pyx_t_11 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_12, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_8);
        PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_12, __pyx_t_8);
        __Pyx_GIVEREF(__pyx_t_9);
        PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_12, __pyx_t_9);
        __Pyx_GIVEREF(__pyx_t_10);
        PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_12, __pyx_t_10);
        __pyx_t_2 = 0;
        __pyx_t_8 = 0;
        __pyx_t_9 = 0;
        __pyx_t_10 = 0;
        __pyx_t_3 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5395, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5396:       for waterbanks in self.waterbank_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_waterbank_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5396, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_3 = __pyx_t_1; __Pyx_INCREF(__pyx_t_3); __pyx_t_4 = 0;
      __pyx_t_5 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_3 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5396, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = Py_TYPE(__pyx_t_3)->tp_iternext; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5396, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_5)) {
        if (likely(PyList_CheckExact(__pyx_t_3))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5396, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5396, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_3)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_3, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5396, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_3, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5396, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_5(__pyx_t_3);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5396, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_waterbanks, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5397:         for x in range(0, len(waterbanks.recharge_decline)):
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbanks, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5397, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_14 = PyObject_Length(__pyx_t_1); if (unlikely(__pyx_t_14 == ((Py_ssize_t)-1))) __PYX_ERR(0, 5397, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_15 = __pyx_t_14;
      for (__pyx_t_16 = 0; __pyx_t_16 < __pyx_t_15; __pyx_t_16+=1) {
        __pyx_v_x = __pyx_t_16;
+5398:           waterbanks.recharge_decline[x] = 1.0 - self.sensitivity_factors['recharge_decline']['realization']*(1.0 - waterbanks.recharge_decline[x])
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_sensitivity_factors); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_recharge_decline); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_realization); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbanks, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = __Pyx_GetItemInt(__pyx_t_6, __pyx_v_x, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_13, 1.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_Multiply(__pyx_t_1, __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_6 = __Pyx_PyFloat_SubtractCObj(__pyx_float_1_0, __pyx_t_13, 1.0, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_waterbanks, __pyx_n_s_recharge_decline); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (unlikely(__Pyx_SetItemInt(__pyx_t_13, __pyx_v_x, __pyx_t_6, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1) < 0)) __PYX_ERR(0, 5398, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      }
 5399: 
 5400: 
+5401:   def set_regulations_historical_north(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_97set_regulations_historical_north(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_97set_regulations_historical_north = {"set_regulations_historical_north", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_97set_regulations_historical_north, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_97set_regulations_historical_north(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_historical_north (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_96set_regulations_historical_north(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_96set_regulations_historical_north(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__75)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_historical_north", 0);
  __Pyx_TraceCall("set_regulations_historical_north", __pyx_f[0], 5401, 0, __PYX_ERR(0, 5401, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_historical_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__137 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_x); if (unlikely(!__pyx_tuple__137)) __PYX_ERR(0, 5401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__137);
  __Pyx_GIVEREF(__pyx_tuple__137);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_97set_regulations_historical_north, 0, __pyx_n_s_Model_set_regulations_historical, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__75)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5401, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_regulations_historical_north, __pyx_t_2) < 0) __PYX_ERR(0, 5401, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__75 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__137, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_regulations_historical_north, 5401, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__75)) __PYX_ERR(0, 5401, __pyx_L1_error)
+5402:     if self.starting_year >= 2005:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5402, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2005, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5402, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5402, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5403:       self.yuba.env_min_flow = self.yuba.env_min_flow_ya
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_env_min_flow_ya); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5403, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_env_min_flow, __pyx_t_1) < 0) __PYX_ERR(0, 5403, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5404:       self.yuba.temp_releases = self.yuba.temp_releases_ya
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_temp_releases_ya); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5404, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_temp_releases, __pyx_t_1) < 0) __PYX_ERR(0, 5404, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5405:     if self.starting_year >= 2008:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5405, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2008, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5405, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5406:       for x in range(318, 334):
    for (__pyx_t_4 = 0x13E; __pyx_t_4 < 0x14E; __pyx_t_4+=1) {
      __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5406, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
+5407:         self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
      __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_2, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_1, 77.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_W); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_x, __pyx_t_2) < 0)) __PYX_ERR(0, 5407, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5408:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5408, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5408, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
+5409:       for x in range(334,366):
    for (__pyx_t_4 = 0x14E; __pyx_t_4 < 0x16E; __pyx_t_4+=1) {
      __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5409, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
      __pyx_t_2 = 0;
+5410:         self.delta.x2constraint['W'][x] = 74.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5410, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5410, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5410, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5410, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5411:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5411, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5411, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
+5412:       for x in range(0, 30):
    for (__pyx_t_4 = 0; __pyx_t_4 < 30; __pyx_t_4+=1) {
      __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5412, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
      __pyx_t_2 = 0;
+5413:         self.delta.x2constraint['W'][x] = 74.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5413, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5413, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5414:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5414, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5414, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
 5415: 
+5416:   def set_regulations_current_north(self):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_99set_regulations_current_north(PyObject *__pyx_self, PyObject *__pyx_v_self); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_99set_regulations_current_north = {"set_regulations_current_north", (PyCFunction)__pyx_pw_14calfews_src_cy_8model_cy_5Model_99set_regulations_current_north, METH_O, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_99set_regulations_current_north(PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_current_north (wrapper)", 0);
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_98set_regulations_current_north(__pyx_self, ((PyObject *)__pyx_v_self));

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_98set_regulations_current_north(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__76)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_current_north", 0);
  __Pyx_TraceCall("set_regulations_current_north", __pyx_f[0], 5416, 0, __PYX_ERR(0, 5416, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_current_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__138 = PyTuple_Pack(2, __pyx_n_s_self, __pyx_n_s_x); if (unlikely(!__pyx_tuple__138)) __PYX_ERR(0, 5416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__138);
  __Pyx_GIVEREF(__pyx_tuple__138);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_99set_regulations_current_north, 0, __pyx_n_s_Model_set_regulations_current_no, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__76)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5416, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_regulations_current_north, __pyx_t_2) < 0) __PYX_ERR(0, 5416, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__76 = (PyObject*)__Pyx_PyCode_New(1, 0, 2, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__138, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_regulations_current_north, 5416, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__76)) __PYX_ERR(0, 5416, __pyx_L1_error)
+5417:     self.yuba.env_min_flow = self.yuba.env_min_flow_ya
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_env_min_flow_ya); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5417, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_env_min_flow, __pyx_t_2) < 0) __PYX_ERR(0, 5417, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5418:     self.yuba.temp_releases = self.yuba.temp_releases_ya
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_temp_releases_ya); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5418, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_temp_releases, __pyx_t_2) < 0) __PYX_ERR(0, 5418, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5419:     for x in range(318, 334):
  for (__pyx_t_3 = 0x13E; __pyx_t_3 < 0x14E; __pyx_t_3+=1) {
    __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5419, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
+5420:       self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
    __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_2, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_1, 77.0, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_4, __pyx_n_u_W); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_x, __pyx_t_2) < 0)) __PYX_ERR(0, 5420, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5421:       self.delta.x2constraint['AN'][x] = 81.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5421, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5421, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
+5422:     for x in range(334,366):
  for (__pyx_t_3 = 0x14E; __pyx_t_3 < 0x16E; __pyx_t_3+=1) {
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5422, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
+5423:       self.delta.x2constraint['W'][x] = 74.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5423, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5423, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5424:       self.delta.x2constraint['AN'][x] = 81.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5424, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5424, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
+5425:     for x in range(0, 30):
  for (__pyx_t_3 = 0; __pyx_t_3 < 30; __pyx_t_3+=1) {
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
+5426:       self.delta.x2constraint['W'][x] = 74.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5426, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5427:       self.delta.x2constraint['AN'][x] = 81.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5427, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5427, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
 5428: 
 5429: 
+5430:   def set_regulations_historical_south(self, scenario):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_101set_regulations_historical_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_101set_regulations_historical_south = {"set_regulations_historical_south", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_101set_regulations_historical_south, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_101set_regulations_historical_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_scenario = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_historical_south (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_scenario,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_scenario)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("set_regulations_historical_south", 1, 2, 2, 1); __PYX_ERR(0, 5430, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "set_regulations_historical_south") < 0)) __PYX_ERR(0, 5430, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_scenario = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("set_regulations_historical_south", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5430, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_historical_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_100set_regulations_historical_south(__pyx_self, __pyx_v_self, __pyx_v_scenario);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_100set_regulations_historical_south(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_scenario) {
  PyObject *__pyx_v_expected_outflow_releases = NULL;
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_y = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_xnum = NULL;
  CYTHON_UNUSED long __pyx_v_do_nothing;
  PyObject *__pyx_v_request_empty = NULL;
  long __pyx_v_contractor_toggle;
  PyObject *__pyx_v_contract = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__77)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("set_regulations_historical_south", 0);
  __Pyx_TraceCall("set_regulations_historical_south", __pyx_f[0], 5430, 0, __PYX_ERR(0, 5430, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_15);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.set_regulations_historical_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expected_outflow_releases);
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_xnum);
  __Pyx_XDECREF(__pyx_v_request_empty);
  __Pyx_XDECREF(__pyx_v_contract);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__139 = PyTuple_Pack(13, __pyx_n_s_self, __pyx_n_s_scenario, __pyx_n_s_expected_outflow_releases, __pyx_n_s_wyt, __pyx_n_s_x, __pyx_n_s_y, __pyx_n_s_xx, __pyx_n_s_district_object, __pyx_n_s_xnum, __pyx_n_s_do_nothing, __pyx_n_s_request_empty, __pyx_n_s_contractor_toggle, __pyx_n_s_contract); if (unlikely(!__pyx_tuple__139)) __PYX_ERR(0, 5430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__139);
  __Pyx_GIVEREF(__pyx_tuple__139);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_101set_regulations_historical_south, 0, __pyx_n_s_Model_set_regulations_historical_2, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__77)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5430, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_set_regulations_historical_south, __pyx_t_2) < 0) __PYX_ERR(0, 5430, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__77 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__139, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_set_regulations_historical_south, 5430, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__77)) __PYX_ERR(0, 5430, __pyx_L1_error)
+5431:     if self.starting_year >= 2005:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5431, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2005, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5431, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5432:       self.semitropic.leiu_recovery = 0.7945
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5432, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_leiu_recovery, __pyx_float_0_7945) < 0) __PYX_ERR(0, 5432, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5433:     if self.starting_year >= 2009:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5433, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2009, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5433, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5433, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5434:       expected_outflow_releases = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5434, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
+5435:       for wyt in ['W', 'AN', 'BN', 'D', 'C']:
    __pyx_t_1 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_4 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5435, __pyx_L1_error)
      #else
      __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5435, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_2));
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5436:         expected_outflow_releases[wyt] = np.zeros(366)
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_6);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_6, function);
        }
      }
      __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_6, __pyx_t_5, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_int_366);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5436, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_2) < 0)) __PYX_ERR(0, 5436, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5437:         self.millerton.carryover_target[wyt] = 250.0
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_carryover_target); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5437, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_wyt, __pyx_float_250_0) < 0)) __PYX_ERR(0, 5437, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5438:       self.millerton.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 1)
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_6 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_5, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_12);
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5438, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_8 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
        __pyx_t_8 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_6, __pyx_int_1};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5438, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
      PyObject *__pyx_temp[5] = {__pyx_t_7, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_6, __pyx_int_1};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5438, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5438, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_8, __pyx_v_self);
      __Pyx_INCREF(__pyx_v_expected_outflow_releases);
      __Pyx_GIVEREF(__pyx_v_expected_outflow_releases);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_8, __pyx_v_expected_outflow_releases);
      __Pyx_GIVEREF(__pyx_t_6);
      PyTuple_SET_ITEM(__pyx_t_5, 2+__pyx_t_8, __pyx_t_6);
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_GIVEREF(__pyx_int_1);
      PyTuple_SET_ITEM(__pyx_t_5, 3+__pyx_t_8, __pyx_int_1);
      __pyx_t_6 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5438, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5439:       self.millerton.max_carryover_target = 250.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5439, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_carryover_target, __pyx_float_250_0) < 0) __PYX_ERR(0, 5439, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5440: 
+5441:     if self.starting_year >= 2004:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5441, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2004, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5441, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5442:       self.kaweah.capacity = 180.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5442, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_capacity, __pyx_float_180_0) < 0) __PYX_ERR(0, 5442, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5443:       self.kaweah.tocs_rule['storage'] = [[180,63,63,180,180], [180,63,63,180,180]]
    __pyx_t_2 = PyList_New(5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_180);
    __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_180);
    __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_storage, __pyx_t_5) < 0)) __PYX_ERR(0, 5443, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5444:     if self.starting_year >= 2005:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5444, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_int_2005, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5444, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5445:       self.isabella.capacity = 400.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5445, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_capacity, __pyx_float_400_0) < 0) __PYX_ERR(0, 5445, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5446:       self.isabella.tocs_rule['storage'] = [[302.6,245,245,245,245,400,400,302.6],  [302.6,245,245,245,245,400,400,302.6]]
    __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_2, 5, __pyx_int_400);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_2, 6, __pyx_int_400);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_2, 7, __pyx_float_302_6);
    __pyx_t_5 = PyList_New(8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_5, 1, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_5, 2, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_5, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_5, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_5, 5, __pyx_int_400);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_5, 6, __pyx_int_400);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_5, 7, __pyx_float_302_6);
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_5);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_5);
    __pyx_t_2 = 0;
    __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5446, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5447:       self.kernriver.carryover = 170.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5447, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_carryover, __pyx_float_170_0) < 0) __PYX_ERR(0, 5447, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5448:     if self.starting_year >= 2006:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5448, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2006, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5448, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5449:       self.isabella.capacity = 361.25
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5449, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_capacity, __pyx_float_361_25) < 0) __PYX_ERR(0, 5449, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5450:       self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6],  [302.6,170,170,245,245,361.25,361.25,302.6]]
    __pyx_t_2 = PyList_New(8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_2, 1, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_2, 2, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_2, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_2, 5, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_2, 6, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_2, 7, __pyx_float_302_6);
    __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_1, 6, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_302_6);
    __pyx_t_5 = PyList_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_5, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_5, 1, __pyx_t_1);
    __pyx_t_2 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_storage, __pyx_t_5) < 0)) __PYX_ERR(0, 5450, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5451:       self.kernriver.carryover = 170.0
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5451, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_carryover, __pyx_float_170_0) < 0) __PYX_ERR(0, 5451, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5452:       for x in self.district_list:
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5452, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
      __pyx_t_2 = __pyx_t_5; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5452, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5452, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5452, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5452, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5452, __pyx_L1_error)
          #else
          __pyx_t_5 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5452, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          #endif
        }
      } else {
        __pyx_t_5 = __pyx_t_9(__pyx_t_2);
        if (unlikely(!__pyx_t_5)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5452, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_5);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_5);
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5453:         x.carryover_rights = {}
      __pyx_t_5 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5453, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_5) < 0) __PYX_ERR(0, 5453, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5454:         for y in self.contract_list:
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5454, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (likely(PyList_CheckExact(__pyx_t_5)) || PyTuple_CheckExact(__pyx_t_5)) {
        __pyx_t_1 = __pyx_t_5; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5454, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5454, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5454, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5454, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_5); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5454, __pyx_L1_error)
            #else
            __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5454, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            #endif
          }
        } else {
          __pyx_t_5 = __pyx_t_11(__pyx_t_1);
          if (unlikely(!__pyx_t_5)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5454, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_5);
        }
        __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_5);
        __pyx_t_5 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5455:           if y.type == 'right':
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5455, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5455, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__pyx_t_3) {
/* … */
          goto __pyx_L14;
        }
+5456:             x.carryover_rights[y.name] = y.carryover*x.rights[y.name]['carryover']
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_carryover); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __pyx_t_12 = PyNumber_Multiply(__pyx_t_5, __pyx_t_7); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_5, __pyx_t_12) < 0)) __PYX_ERR(0, 5456, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 5457:           else:
+5458:             x.carryover_rights[y.name] = 0.0
        /*else*/ {
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5458, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          if (unlikely(PyObject_SetItem(__pyx_t_12, __pyx_t_5, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5458, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        }
        __pyx_L14:;
+5459:       for x in self.private_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5459, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5459, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5459, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5459, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5459, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5459, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5459, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5459, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5460:         x.carryover_rights = {}
      __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5460, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_2) < 0) __PYX_ERR(0, 5460, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5461:         for xx in x.district_list:
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5461, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
        __pyx_t_5 = __pyx_t_2; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5461, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5461, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_5))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5461, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5461, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5461, __pyx_L1_error)
            #else
            __pyx_t_2 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5461, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_2);
            #endif
          }
        } else {
          __pyx_t_2 = __pyx_t_11(__pyx_t_5);
          if (unlikely(!__pyx_t_2)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5461, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_2);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_2);
        __pyx_t_2 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5462:           district_object = self.district_keys[xx]
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5462, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_12);
        __pyx_t_12 = 0;
+5463:           x.carryover_rights[xx] = {}
        __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5463, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5463, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 5463, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+5464:           for y in self.contract_list:
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5464, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
          __pyx_t_2 = __pyx_t_12; __Pyx_INCREF(__pyx_t_2); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5464, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5464, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_2))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_12 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5464, __pyx_L1_error)
              #else
              __pyx_t_12 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5464, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5464, __pyx_L1_error)
              #else
              __pyx_t_12 = PySequence_ITEM(__pyx_t_2, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5464, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              #endif
            }
          } else {
            __pyx_t_12 = __pyx_t_14(__pyx_t_2);
            if (unlikely(!__pyx_t_12)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5464, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_12);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_12);
          __pyx_t_12 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5465:             if y.type == 'right':
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5465, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5465, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_3) {
/* … */
            goto __pyx_L21;
          }
+5466:               x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][0]
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyObject_Dict_GetItem(__pyx_t_15, __pyx_n_u_carryover); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = PyNumber_Multiply(__pyx_t_12, __pyx_t_6); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_Multiply(__pyx_t_15, __pyx_t_6); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_6, __pyx_t_12) < 0)) __PYX_ERR(0, 5466, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 5467:             else:
+5468:               x.carryover_rights[xx][y.name] = 0.0
          /*else*/ {
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5468, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_6 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5468, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5468, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_t_12, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5468, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
          __pyx_L21:;
+5469:       for x in self.city_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5469, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5469, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_9 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5469, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5469, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5469, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5469, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5469, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_9(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5469, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5470:         x.carryover_rights = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5470, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_1) < 0) __PYX_ERR(0, 5470, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5471:         for xx in x.district_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5471, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_10 = 0;
        __pyx_t_11 = NULL;
      } else {
        __pyx_t_10 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5471, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_11 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5471, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_11)) {
          if (likely(PyList_CheckExact(__pyx_t_2))) {
            if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5471, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5471, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5471, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5471, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_11(__pyx_t_2);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5471, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5472:           district_object = self.district_keys[xx]
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5472, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_12);
        __pyx_t_12 = 0;
+5473:           x.carryover_rights[xx] = {}
        __pyx_t_12 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5473, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5473, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_xx, __pyx_t_12) < 0)) __PYX_ERR(0, 5473, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+5474:           for y in self.contract_list:
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5474, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        if (likely(PyList_CheckExact(__pyx_t_12)) || PyTuple_CheckExact(__pyx_t_12)) {
          __pyx_t_1 = __pyx_t_12; __Pyx_INCREF(__pyx_t_1); __pyx_t_13 = 0;
          __pyx_t_14 = NULL;
        } else {
          __pyx_t_13 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5474, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_14 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 5474, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        for (;;) {
          if (likely(!__pyx_t_14)) {
            if (likely(PyList_CheckExact(__pyx_t_1))) {
              if (__pyx_t_13 >= PyList_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_12 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5474, __pyx_L1_error)
              #else
              __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5474, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              #endif
            } else {
              if (__pyx_t_13 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_12 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_13); __Pyx_INCREF(__pyx_t_12); __pyx_t_13++; if (unlikely(0 < 0)) __PYX_ERR(0, 5474, __pyx_L1_error)
              #else
              __pyx_t_12 = PySequence_ITEM(__pyx_t_1, __pyx_t_13); __pyx_t_13++; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5474, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_12);
              #endif
            }
          } else {
            __pyx_t_12 = __pyx_t_14(__pyx_t_1);
            if (unlikely(!__pyx_t_12)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5474, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_12);
          }
          __Pyx_XDECREF_SET(__pyx_v_y, __pyx_t_12);
          __pyx_t_12 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5475:             if y.type == 'right':
          __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5475, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_12);
          __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5475, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          if (__pyx_t_3) {
/* … */
            goto __pyx_L28;
          }
+5476:               x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][0]
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_carryover); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __pyx_t_7 = PyNumber_Multiply(__pyx_t_12, __pyx_t_15); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_12 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_GetItemInt(__pyx_t_12, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = PyNumber_Multiply(__pyx_t_7, __pyx_t_15); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_15, __pyx_v_xx); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __pyx_t_15 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_t_15, __pyx_t_12) < 0)) __PYX_ERR(0, 5476, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
 5477:             else:
+5478:               x.carryover_rights[xx][y.name] = 0.0
          /*else*/ {
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5478, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            __pyx_t_15 = __Pyx_PyObject_GetItem(__pyx_t_12, __pyx_v_xx); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5478, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_15);
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
            __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5478, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_12);
            if (unlikely(PyObject_SetItem(__pyx_t_15, __pyx_t_12, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5478, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
            __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
          }
          __pyx_L28:;
+5479:     if self.starting_year >= 2009:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_int_2009, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5480:       self.poso.initial_recharge = 420.0
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5480, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_initial_recharge, __pyx_float_420_0) < 0) __PYX_ERR(0, 5480, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5481:       self.poso.recovery = 0.6942
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5481, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_recovery, __pyx_float_0_6942) < 0) __PYX_ERR(0, 5481, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5482:       self.poso.tot_storage = 2.1
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5482, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_tot_storage, __pyx_float_2_1) < 0) __PYX_ERR(0, 5482, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5483:       self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_capacity); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_normal, __pyx_t_2) < 0)) __PYX_ERR(0, 5483, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5484:     if self.starting_year >= 2010:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5484, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2010, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5484, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5485:       self.irvineranch.initial_recharge = 300.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5485, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_initial_recharge, __pyx_float_300_0) < 0) __PYX_ERR(0, 5485, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5486:       self.irvineranch.recovery = 0.0479
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5486, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_recovery, __pyx_float_0_0479) < 0) __PYX_ERR(0, 5486, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5487:       self.irvineranch.tot_storage = 0.594
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5487, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_tot_storage, __pyx_float_0_594) < 0) __PYX_ERR(0, 5487, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5488:     if self.starting_year >= 1998:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5488, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_1998, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5488, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5489:       self.berrenda.project_contract['tableA'] =  0.032076
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5489, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5489, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_032076) < 0)) __PYX_ERR(0, 5489, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5490:       self.socal.project_contract['tableA'] = 0.63338264299
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5490, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_63338264299) < 0)) __PYX_ERR(0, 5490, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5491:       for xnum in range(0, self.number_years):
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5491, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5491, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5491, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5491, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5491, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5491, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5491, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5491, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_xnum, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5492:         self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.63338264299)
      __pyx_t_2 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.63338264299))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_SOC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5492, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_xnum, __pyx_t_2) < 0)) __PYX_ERR(0, 5492, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5493:       self.socal.private_fraction =  [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.63338264299)]
    __pyx_t_1 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.63338264299))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5493, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_private_fraction, __pyx_t_2) < 0) __PYX_ERR(0, 5493, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5494:     if self.starting_year >= 1999:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5494, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_1999, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5494, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5495:       self.belridge.project_contract['tableA'] = 0.03636
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5495, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5495, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_03636) < 0)) __PYX_ERR(0, 5495, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5496:     if self.starting_year >= 2000:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5496, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2000, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5496, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5497:       self.southbay.project_contract['tableA'] = 0.05177514792
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5497, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_05177514792) < 0)) __PYX_ERR(0, 5497, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5498:       self.belridge.project_contract['tableA'] = 0.03538
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5498, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_03538) < 0)) __PYX_ERR(0, 5498, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5499:       self.berrenda.project_contract['tableA'] =  0.03035
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5499, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_03035) < 0)) __PYX_ERR(0, 5499, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5500:       self.losthills.project_contract['tableA'] = 0.0293663708
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_losthills); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5500, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5500, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5501:       self.wheeler.project_contract['tableA'] =  0.04858926015
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wheeler); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5501, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5501, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5502:       self.socal.project_contract['tableA'] = 0.64423076923
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5502, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5502, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_64423076923) < 0)) __PYX_ERR(0, 5502, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5503:       for xnum in range(0, self.number_years):
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_1, NULL); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5503, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5503, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_9 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5503, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5503, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5503, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5503, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5503, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_9(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5503, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_xnum, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5504:         self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.64423076923)
      __pyx_t_2 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.64423076923))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5504, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5504, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5504, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_SOC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5504, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_xnum, __pyx_t_2) < 0)) __PYX_ERR(0, 5504, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5505:       self.socal.private_fraction =  [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.64423076923)]
    __pyx_t_1 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.64423076923))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyList_New(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5505, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_private_fraction, __pyx_t_2) < 0) __PYX_ERR(0, 5505, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5506: 
+5507:     if self.starting_year >= 2001:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5507, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2001, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5507, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5508:       self.southbay.project_contract['tableA'] = 0.05424063116
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5508, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_05424063116) < 0)) __PYX_ERR(0, 5508, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5509:       self.belridge.project_contract['tableA'] = 0.0305
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5509, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_0305) < 0)) __PYX_ERR(0, 5509, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5510:       self.berrenda.project_contract['tableA'] =  0.02837
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5510, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_02837) < 0)) __PYX_ERR(0, 5510, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5511:     if self.starting_year >= 2004:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5511, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_int_2004, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5511, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5511, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5512:       self.belridge.project_contract['tableA'] = 0.02995607
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5512, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5512, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5512, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5513:       self.berrenda.project_contract['tableA'] =  0.02677
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5513, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5513, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_02677) < 0)) __PYX_ERR(0, 5513, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5514:       self.southbay.project_contract['tableA'] = 0.0548863
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5514, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5514, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5515:       self.westkern.project_contract['tableA'] = 0.00776587
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westkern); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5515, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5515, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5515, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5516:     if self.starting_year >= 2010:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5516, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2010, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5516, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5517:       self.berrenda.project_contract['tableA'] =  0.02282922
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5517, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5517, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5518:       self.socal.project_contract['tableA'] = 0.648310
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5518, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5518, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5518, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5519:       for xnum in range(0, self.number_years):
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_number_years); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_GIVEREF(__pyx_int_0);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_int_0);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_range, __pyx_t_2, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5519, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
      __pyx_t_9 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5519, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5519, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_9)) {
        if (likely(PyList_CheckExact(__pyx_t_2))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5519, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5519, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5519, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5519, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_9(__pyx_t_2);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5519, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_xnum, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5520:         self.metropolitan.private_fraction['SOC'][xnum] = 1911.0/(4056.0 * 0.648310)
      __pyx_t_1 = PyFloat_FromDouble((1911.0 / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_metropolitan); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_12, __pyx_n_u_SOC); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5520, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_xnum, __pyx_t_1) < 0)) __PYX_ERR(0, 5520, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5521:       self.socal.private_fraction =  [(1911.0 + (0.03629 + 0.05274) * 4056.0) / (4056.0 * 0.648310)]
    __pyx_t_2 = PyFloat_FromDouble(((1911.0 + ((0.03629 + 0.05274) * 4056.0)) / (4056.0 * 0.648310))); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_2);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
    __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5521, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_private_fraction, __pyx_t_1) < 0) __PYX_ERR(0, 5521, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5522: 
+5523:     if self.starting_year >= 2002:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5523, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_int_2002, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5523, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5524:       self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_0_0);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5524, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5524, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5525:       self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_440_0);
    __Pyx_GIVEREF(__pyx_float_440_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_440_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_800_0);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_capacity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_reverse, __pyx_t_1) < 0)) __PYX_ERR(0, 5525, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5526:       self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_0_0);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5526, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_closed, __pyx_t_1) < 0)) __PYX_ERR(0, 5526, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5527:       self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_turnout); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5527, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5527, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5528:       self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_440_0);
    __Pyx_GIVEREF(__pyx_float_440_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_440_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_800_0);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_turnout); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5528, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_reverse, __pyx_t_1) < 0)) __PYX_ERR(0, 5528, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5529:       self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_turnout); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5529, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_2, __pyx_n_u_closed, __pyx_t_1) < 0)) __PYX_ERR(0, 5529, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5530:       self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5530, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5530, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5531:       self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5531, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5531, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5532:       self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_recovery); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5532, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5532, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5533:       self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_recovery); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5533, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5533, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5534:       #self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
 5535: 
+5536:       self.kwb.initial_recharge = 1212.12
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5536, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_initial_recharge, __pyx_float_1212_12) < 0) __PYX_ERR(0, 5536, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5537:       self.kwb.recovery = 0.7863
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5537, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_recovery, __pyx_float_0_7863) < 0) __PYX_ERR(0, 5537, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5538:       self.kwb.tot_storage = 2.4
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5538, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_tot_storage, __pyx_float_2_4) < 0) __PYX_ERR(0, 5538, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5539:       if (scenario == 'baseline'):
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_scenario, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5539, __pyx_L1_error)
    if (__pyx_t_3) {
/* … */
      goto __pyx_L44;
    }
+5540:         do_nothing = 0
      __pyx_v_do_nothing = 0;
+5541:       elif (scenario['FKC'] == 'baseline'):
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_v_scenario, __pyx_n_u_FKC); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5541, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_baseline, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5541, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_3) {
/* … */
    }
    __pyx_L44:;
+5542:         self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_capacity); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_capacity); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5542, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5543: 
+5544:       self.kerndelta.in_district_direct_recharge = 165.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5544, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_165_0) < 0) __PYX_ERR(0, 5544, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5545:       self.kerndelta.in_district_storage = 0.326
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5545, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_0_326) < 0) __PYX_ERR(0, 5545, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5546:       self.buenavista.in_district_direct_recharge = 333.3
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5546, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_333_3) < 0) __PYX_ERR(0, 5546, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5547:       self.buenavista.in_district_storage = 0.66
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_0_66) < 0) __PYX_ERR(0, 5547, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5548:       self.rosedale.in_district_direct_recharge = 606.1
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_606_1) < 0) __PYX_ERR(0, 5548, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5549:       self.rosedale.in_district_storage = 1.2
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_1_2) < 0) __PYX_ERR(0, 5549, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5550: 
+5551:     self.swpdelta.total = 4056.0
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5551, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_total, __pyx_float_4056_0) < 0) __PYX_ERR(0, 5551, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5552:     if self.starting_year == 1996:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1996, 0x7CC, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5552, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5552, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L45;
  }
+5553:       self.swpdelta.max_allocation = 2977.0
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5553, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_max_allocation, __pyx_float_2977_0) < 0) __PYX_ERR(0, 5553, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5554:     elif self.starting_year == 1997:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1997, 0x7CD, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5554, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5554, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L45;
  }
+5555:       self.swpdelta.max_allocation = 3191.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5555, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_3191_0) < 0) __PYX_ERR(0, 5555, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5556:     elif self.starting_year == 1998:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyInt_EqObjC(__pyx_t_1, __pyx_int_1998, 0x7CE, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5556, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5556, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L45;
  }
+5557:       self.swpdelta.max_allocation = 3214.0
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5557, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_5, __pyx_n_s_max_allocation, __pyx_float_3214_0) < 0) __PYX_ERR(0, 5557, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5558:     elif self.starting_year == 1999:
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_t_5, __pyx_int_1999, 0x7CF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5558, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5558, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L45;
  }
+5559:       self.swpdelta.max_allocation = 3617.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5559, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_3617_0) < 0) __PYX_ERR(0, 5559, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5560:     else:
+5561:       self.swpdelta.max_allocation = 4056.0
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5561, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_4056_0) < 0) __PYX_ERR(0, 5561, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L45:;
 5562: 
+5563:     request_empty = self.swpdelta.total - self.swpdelta.max_allocation
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5563, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_request_empty = __pyx_t_1;
  __pyx_t_1 = 0;
+5564:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5564, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_2 = __pyx_t_1; __Pyx_INCREF(__pyx_t_2); __pyx_t_4 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_2 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5564, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_9 = Py_TYPE(__pyx_t_2)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5564, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_2))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5564, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5564, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_2)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_2, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5564, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_2, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5564, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_9(__pyx_t_2);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5564, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5565:       contractor_toggle = 0
    __pyx_v_contractor_toggle = 0;
+5566:       for contract in x.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5566, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_5 = __pyx_t_1; __Pyx_INCREF(__pyx_t_5); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_5 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5566, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_11 = Py_TYPE(__pyx_t_5)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5566, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_5))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5566, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5566, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_5)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_5, __pyx_t_10); __Pyx_INCREF(__pyx_t_1); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5566, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_5, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5566, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_11(__pyx_t_5);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5566, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __pyx_L49_break:;
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5567:         if contract == 'tableA':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5567, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
      }
+5568:           contractor_toggle = 1
        __pyx_v_contractor_toggle = 1;
+5569:           break
        goto __pyx_L49_break;
+5570:       if contractor_toggle == 1:
    __pyx_t_3 = ((__pyx_v_contractor_toggle == 1) != 0);
    if (__pyx_t_3) {
/* … */
    }
+5571:         if x.key == "SOC":
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5571, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_5, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5571, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L52;
      }
+5572:           x.table_a_request = x.initial_table_a*self.swpdelta.total - request_empty
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_Multiply(__pyx_t_5, __pyx_t_12); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = PyNumber_Subtract(__pyx_t_1, __pyx_v_request_empty); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_12) < 0) __PYX_ERR(0, 5572, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+5573:         elif x.key == "SOB":
      __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5573, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_12);
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_12, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5573, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L52;
      }
+5574:           x.table_a_request = x.initial_table_a*self.swpdelta.total
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_Multiply(__pyx_t_12, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5574, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_1) < 0) __PYX_ERR(0, 5574, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5575:         elif x.key == "CCA":
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5575, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_CCA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5575, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_3) {
/* … */
        goto __pyx_L52;
      }
+5576:           x.table_a_request = x.initial_table_a*self.swpdelta.total
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5576, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5576, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_total); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5576, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_1, __pyx_t_12); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5576, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_5) < 0) __PYX_ERR(0, 5576, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 5577:         else:
+5578:           x.table_a_request = x.initial_table_a*self.swpdelta.total
      /*else*/ {
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
        __pyx_t_12 = PyNumber_Multiply(__pyx_t_5, __pyx_t_1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5578, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_12);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_12) < 0) __PYX_ERR(0, 5578, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
      }
      __pyx_L52:;
+5579:     self.swpdelta.total = self.swpdelta.max_allocation
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_12 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_max_allocation); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5579, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_total, __pyx_t_12) < 0) __PYX_ERR(0, 5579, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5580:     for x in self.district_list:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5580, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
    __pyx_t_12 = __pyx_t_2; __Pyx_INCREF(__pyx_t_12); __pyx_t_4 = 0;
    __pyx_t_9 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_12 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5580, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __pyx_t_9 = Py_TYPE(__pyx_t_12)->tp_iternext; if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 5580, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  for (;;) {
    if (likely(!__pyx_t_9)) {
      if (likely(PyList_CheckExact(__pyx_t_12))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyList_GET_ITEM(__pyx_t_12, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5580, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_12)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_12, __pyx_t_4); __Pyx_INCREF(__pyx_t_2); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5580, __pyx_L1_error)
        #else
        __pyx_t_2 = PySequence_ITEM(__pyx_t_12, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5580, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        #endif
      }
    } else {
      __pyx_t_2 = __pyx_t_9(__pyx_t_12);
      if (unlikely(!__pyx_t_2)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5580, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_2);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_2);
    __pyx_t_2 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
+5581:       contractor_toggle = 0
    __pyx_v_contractor_toggle = 0;
+5582:       for contract in x.contract_list:
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5582, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (likely(PyList_CheckExact(__pyx_t_2)) || PyTuple_CheckExact(__pyx_t_2)) {
      __pyx_t_1 = __pyx_t_2; __Pyx_INCREF(__pyx_t_1); __pyx_t_10 = 0;
      __pyx_t_11 = NULL;
    } else {
      __pyx_t_10 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5582, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_11 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_11)) __PYX_ERR(0, 5582, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    for (;;) {
      if (likely(!__pyx_t_11)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_10 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5582, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5582, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        } else {
          if (__pyx_t_10 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_2 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_10); __Pyx_INCREF(__pyx_t_2); __pyx_t_10++; if (unlikely(0 < 0)) __PYX_ERR(0, 5582, __pyx_L1_error)
          #else
          __pyx_t_2 = PySequence_ITEM(__pyx_t_1, __pyx_t_10); __pyx_t_10++; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5582, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_2);
          #endif
        }
      } else {
        __pyx_t_2 = __pyx_t_11(__pyx_t_1);
        if (unlikely(!__pyx_t_2)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5582, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_2);
      }
      __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_2);
      __pyx_t_2 = 0;
/* … */
    }
    __pyx_L56_break:;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5583:         if contract == 'tableA':
      __pyx_t_3 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5583, __pyx_L1_error)
      if (__pyx_t_3) {
/* … */
      }
+5584:           contractor_toggle = 1
        __pyx_v_contractor_toggle = 1;
+5585:           break
        goto __pyx_L56_break;
+5586:       if contractor_toggle == 1:
    __pyx_t_3 = ((__pyx_v_contractor_toggle == 1) != 0);
    if (__pyx_t_3) {
/* … */
    }
+5587:         x.project_contract['tableA'] = x.table_a_request/self.swpdelta.total
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_total); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_n_u_tableA, __pyx_t_2) < 0)) __PYX_ERR(0, 5587, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5588: 
 5589: 
 5590: 
+5591:   def update_regulations_south(self,t,dowy,m,y, wateryear):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_103update_regulations_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_103update_regulations_south = {"update_regulations_south", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_103update_regulations_south, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_103update_regulations_south(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_y = 0;
  PyObject *__pyx_v_wateryear = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_regulations_south (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_y,&__pyx_n_s_wateryear,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, 1); __PYX_ERR(0, 5591, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, 2); __PYX_ERR(0, 5591, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, 3); __PYX_ERR(0, 5591, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, 4); __PYX_ERR(0, 5591, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (likely((values[5] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_wateryear)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, 5); __PYX_ERR(0, 5591, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_regulations_south") < 0)) __PYX_ERR(0, 5591, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 6) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
      values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_dowy = values[2];
    __pyx_v_m = values[3];
    __pyx_v_y = values[4];
    __pyx_v_wateryear = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_regulations_south", 1, 6, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5591, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_regulations_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_102update_regulations_south(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_y, __pyx_v_wateryear);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_102update_regulations_south(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_y, PyObject *__pyx_v_wateryear) {
  PyObject *__pyx_v_expected_outflow_releases = NULL;
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_v_sjrrwyt = NULL;
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_v_xx = NULL;
  PyObject *__pyx_v_district_object = NULL;
  PyObject *__pyx_v_request_empty = NULL;
  long __pyx_v_contractor_toggle;
  PyObject *__pyx_v_contract = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__78)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_regulations_south", 0);
  __Pyx_TraceCall("update_regulations_south", __pyx_f[0], 5591, 0, __PYX_ERR(0, 5591, __pyx_L1_error));
  __Pyx_INCREF(__pyx_v_y);
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_16);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_regulations_south", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_expected_outflow_releases);
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XDECREF(__pyx_v_sjrrwyt);
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XDECREF(__pyx_v_xx);
  __Pyx_XDECREF(__pyx_v_district_object);
  __Pyx_XDECREF(__pyx_v_request_empty);
  __Pyx_XDECREF(__pyx_v_contract);
  __Pyx_XDECREF(__pyx_v_y);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__140 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_dowy, __pyx_n_s_m, __pyx_n_s_y, __pyx_n_s_wateryear, __pyx_n_s_expected_outflow_releases, __pyx_n_s_wyt, __pyx_n_s_sjrrwyt, __pyx_n_s_x, __pyx_n_s_xx, __pyx_n_s_district_object, __pyx_n_s_request_empty, __pyx_n_s_contractor_toggle, __pyx_n_s_contract); if (unlikely(!__pyx_tuple__140)) __PYX_ERR(0, 5591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__140);
  __Pyx_GIVEREF(__pyx_tuple__140);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_103update_regulations_south, 0, __pyx_n_s_Model_update_regulations_south, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__78)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5591, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_update_regulations_south, __pyx_t_2) < 0) __PYX_ERR(0, 5591, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__78 = (PyObject*)__Pyx_PyCode_New(6, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__140, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_update_regulations_south, 5591, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__78)) __PYX_ERR(0, 5591, __pyx_L1_error)
 5592:     ##San Joaquin River Restoration Project, started in October of 2009 (WY 2009)
 5593: 	##Additional Releases from Millerton Lake depending on WYT
+5594:     if y >= 2006:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2006, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5594, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5594, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5595:       self.semitropic.leiu_recovery = 0.7945
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_semitropic); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5595, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_leiu_recovery, __pyx_float_0_7945) < 0) __PYX_ERR(0, 5595, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5596:     if y == 2009 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5596, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5596, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5597:       expected_outflow_releases = {}
    __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5597, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_expected_outflow_releases = ((PyObject*)__pyx_t_1);
    __pyx_t_1 = 0;
+5598:       for wyt in ['W', 'AN', 'BN', 'D', 'C']:
    __pyx_t_1 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_4 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_5); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5598, __pyx_L1_error)
      #else
      __pyx_t_5 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5598, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_wyt, ((PyObject*)__pyx_t_5));
      __pyx_t_5 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5599:         expected_outflow_releases[wyt] = np.zeros(366)
      __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5599, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5599, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_7, function);
        }
      }
      __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_6, __pyx_int_366) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_int_366);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5599, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (unlikely(PyDict_SetItem(__pyx_v_expected_outflow_releases, __pyx_v_wyt, __pyx_t_5) < 0)) __PYX_ERR(0, 5599, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5600:       self.millerton.calc_expected_min_release(self, expected_outflow_releases, np.zeros(12), 1)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_calc_expected_min_release); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_zeros); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_8))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_8, function);
      }
    }
    __pyx_t_5 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_int_12);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5600, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_8 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_8)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_8);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_5, __pyx_int_1};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5600, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
      PyObject *__pyx_temp[5] = {__pyx_t_8, __pyx_v_self, __pyx_v_expected_outflow_releases, __pyx_t_5, __pyx_int_1};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_9, 4+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5600, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    } else
    #endif
    {
      __pyx_t_6 = PyTuple_New(4+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5600, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__pyx_t_8) {
        __Pyx_GIVEREF(__pyx_t_8); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_8); __pyx_t_8 = NULL;
      }
      __Pyx_INCREF(__pyx_v_self);
      __Pyx_GIVEREF(__pyx_v_self);
      PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_9, __pyx_v_self);
      __Pyx_INCREF(__pyx_v_expected_outflow_releases);
      __Pyx_GIVEREF(__pyx_v_expected_outflow_releases);
      PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_9, __pyx_v_expected_outflow_releases);
      __Pyx_GIVEREF(__pyx_t_5);
      PyTuple_SET_ITEM(__pyx_t_6, 2+__pyx_t_9, __pyx_t_5);
      __Pyx_INCREF(__pyx_int_1);
      __Pyx_GIVEREF(__pyx_int_1);
      PyTuple_SET_ITEM(__pyx_t_6, 3+__pyx_t_9, __pyx_int_1);
      __pyx_t_5 = 0;
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_6, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5600, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5601: 
+5602:     if y == 2009 and m >= 10:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5602, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5602, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L10_bool_binop_done;
  }
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_m, __pyx_int_10, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5602, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5602, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L10_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L9;
  }
+5603:       self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5603, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5603, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5603, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
      PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5603, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_GOTREF(__pyx_t_1);
    } else
    #endif
    {
      __pyx_t_5 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (__pyx_t_7) {
        __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_7); __pyx_t_7 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_9, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_9, __pyx_v_dowy);
      __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5603, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5603, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_sjrr_release, __pyx_t_1) < 0) __PYX_ERR(0, 5603, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5604:       for sjrrwyt in ['W', 'AN', 'BN', 'D', 'C']:
    __pyx_t_6 = __pyx_tuple__8; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
    for (;;) {
      if (__pyx_t_4 >= 5) break;
      #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
      __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5604, __pyx_L1_error)
      #else
      __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5604, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      #endif
      __Pyx_XDECREF_SET(__pyx_v_sjrrwyt, ((PyObject*)__pyx_t_1));
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5605:         self.millerton.carryover_target[sjrrwyt] = 250.0
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5605, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_carryover_target); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5605, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_v_sjrrwyt, __pyx_float_250_0) < 0)) __PYX_ERR(0, 5605, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5606:       self.millerton.max_carryover_target = 250.0
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5606, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_max_carryover_target, __pyx_float_250_0) < 0) __PYX_ERR(0, 5606, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5607:     elif y > 2009:
  __pyx_t_6 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2009, Py_GT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5607, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5607, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
/* … */
  }
  __pyx_L9:;
+5608:       self.millerton.sjrr_release = self.millerton.sj_riv_res_flows(t, dowy)
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sj_riv_res_flows); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = NULL;
    __pyx_t_9 = 0;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_5)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_5);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
        __pyx_t_9 = 1;
      }
    }
    #if CYTHON_FAST_PYCALL
    if (PyFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_6 = __Pyx_PyFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5608, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    #if CYTHON_FAST_PYCCALL
    if (__Pyx_PyFastCFunction_Check(__pyx_t_1)) {
      PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_v_t, __pyx_v_dowy};
      __pyx_t_6 = __Pyx_PyCFunction_FastCall(__pyx_t_1, __pyx_temp+1-__pyx_t_9, 2+__pyx_t_9); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5608, __pyx_L1_error)
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GOTREF(__pyx_t_6);
    } else
    #endif
    {
      __pyx_t_7 = PyTuple_New(2+__pyx_t_9); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__pyx_t_5) {
        __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
      }
      __Pyx_INCREF(__pyx_v_t);
      __Pyx_GIVEREF(__pyx_v_t);
      PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_9, __pyx_v_t);
      __Pyx_INCREF(__pyx_v_dowy);
      __Pyx_GIVEREF(__pyx_v_dowy);
      PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_9, __pyx_v_dowy);
      __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5608, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5608, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_sjrr_release, __pyx_t_6) < 0) __PYX_ERR(0, 5608, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5609:     if t == 3089:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3089, 0xC11, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5609, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5609, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5610:       self.kaweah.capacity = 180.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5610, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_capacity, __pyx_float_180_0) < 0) __PYX_ERR(0, 5610, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5611:       self.kaweah.tocs_rule['storage'] = [[180,63,63,180,180], [180,63,63,180,180]]
    __pyx_t_1 = PyList_New(5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_180);
    __pyx_t_6 = PyList_New(5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_63);
    __Pyx_GIVEREF(__pyx_int_63);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_int_63);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_int_180);
    __Pyx_INCREF(__pyx_int_180);
    __Pyx_GIVEREF(__pyx_int_180);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_int_180);
    __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_storage, __pyx_t_7) < 0)) __PYX_ERR(0, 5611, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5612:     if t == 3451:
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3451, 0xD7B, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5612, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5612, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5613:       self.isabella.capacity = 400.0
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5613, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_7, __pyx_n_s_capacity, __pyx_float_400_0) < 0) __PYX_ERR(0, 5613, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5614:       self.isabella.tocs_rule['storage'] = [[302.6,245,245,245,245,400,400,302.6],  [302.6,245,245,245,245,400,400,302.6]]
    __pyx_t_7 = PyList_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_int_400);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_7, 6, __pyx_int_400);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_7, 7, __pyx_float_302_6);
    __pyx_t_1 = PyList_New(8); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_int_400);
    __Pyx_INCREF(__pyx_int_400);
    __Pyx_GIVEREF(__pyx_int_400);
    PyList_SET_ITEM(__pyx_t_1, 6, __pyx_int_400);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_1, 7, __pyx_float_302_6);
    __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5614, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5615:       self.kernriver.carryover = 170.0
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5615, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_carryover, __pyx_float_170_0) < 0) __PYX_ERR(0, 5615, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5616:     if t == 3816:
  __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3816, 0xEE8, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5616, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5616, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5617:       self.isabella.capacity = 361.25
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5617, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_capacity, __pyx_float_361_25) < 0) __PYX_ERR(0, 5617, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5618:       self.isabella.tocs_rule['storage'] = [[302.6,170,170,245,245,361.25,361.25,302.6],  [302.6,170,170,245,245,361.25,361.25,302.6]]
    __pyx_t_6 = PyList_New(8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_6, 6, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_6, 7, __pyx_float_302_6);
    __pyx_t_7 = PyList_New(8); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_302_6);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_170);
    __Pyx_GIVEREF(__pyx_int_170);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_int_170);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_int_245);
    __Pyx_INCREF(__pyx_int_245);
    __Pyx_GIVEREF(__pyx_int_245);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_int_245);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_361_25);
    __Pyx_GIVEREF(__pyx_float_361_25);
    PyList_SET_ITEM(__pyx_t_7, 6, __pyx_float_361_25);
    __Pyx_INCREF(__pyx_float_302_6);
    __Pyx_GIVEREF(__pyx_float_302_6);
    PyList_SET_ITEM(__pyx_t_7, 7, __pyx_float_302_6);
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5618, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5619:       self.kernriver.carryover = 170.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kernriver); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5619, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_carryover, __pyx_float_170_0) < 0) __PYX_ERR(0, 5619, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5620:     if t == 2985:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_2985, 0xBA9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5620, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5620, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5621:       self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,41.0,41.0,36.8] , [36.8,6.5,6.5,41.0,41.0,36.8]]
    __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8);
    __pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_36_8);
    __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_storage, __pyx_t_7) < 0)) __PYX_ERR(0, 5621, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5622:     if t == 3350:
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3350, 0xD16, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5622, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5622, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5623:       self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,65.0,65.0,36.8]]
    __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_36_8);
    __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8);
    __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5623, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5624:     if t == 3715:
  __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_3715, 0xE83, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5624, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5624, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5625:       self.success.tocs_rule['storage'] = [[29.2,6.5,6.5,29.2,29.2,29.2] , [29.2,6.5,6.5,29.2,29.2,29.2]]
    __pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_29_2);
    __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_float_29_2);
    __Pyx_INCREF(__pyx_float_29_2);
    __Pyx_GIVEREF(__pyx_float_29_2);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_29_2);
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5625, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5626:     if t == 4445:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_4445, 0x115D, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5626, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5626, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5627:       self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,41.0,41.0,36.8] , [36.8,6.5,6.5,41.0,41.0,36.8]]
    __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8);
    __pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_41_0);
    __Pyx_GIVEREF(__pyx_float_41_0);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_41_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_36_8);
    __pyx_t_7 = PyList_New(2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_t_6);
    __pyx_t_1 = 0;
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_storage, __pyx_t_7) < 0)) __PYX_ERR(0, 5627, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5628:     if t == 5540:
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_5540, 0x15A4, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5628, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5628, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5629:       self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,65.0,65.0,36.8]]
    __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_36_8);
    __pyx_t_1 = PyList_New(6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_1, 4, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_1, 5, __pyx_float_36_8);
    __pyx_t_6 = PyList_New(2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_t_7);
    __Pyx_GIVEREF(__pyx_t_1);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_t_1);
    __pyx_t_7 = 0;
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_storage, __pyx_t_6) < 0)) __PYX_ERR(0, 5629, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5630:     if t == 6270:
  __pyx_t_6 = __Pyx_PyInt_EqObjC(__pyx_v_t, __pyx_int_6270, 0x187E, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5630, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5630, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5631:       self.success.tocs_rule['storage'] = [[36.8,6.5,6.5,65.0,65.0,36.8] , [36.8,6.5,6.5,82.3,82.3,36.8]]
    __pyx_t_6 = PyList_New(6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_6, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_6, 3, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_65_0);
    __Pyx_GIVEREF(__pyx_float_65_0);
    PyList_SET_ITEM(__pyx_t_6, 4, __pyx_float_65_0);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_6, 5, __pyx_float_36_8);
    __pyx_t_7 = PyList_New(6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 0, __pyx_float_36_8);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 1, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_6_5);
    __Pyx_GIVEREF(__pyx_float_6_5);
    PyList_SET_ITEM(__pyx_t_7, 2, __pyx_float_6_5);
    __Pyx_INCREF(__pyx_float_82_3);
    __Pyx_GIVEREF(__pyx_float_82_3);
    PyList_SET_ITEM(__pyx_t_7, 3, __pyx_float_82_3);
    __Pyx_INCREF(__pyx_float_82_3);
    __Pyx_GIVEREF(__pyx_float_82_3);
    PyList_SET_ITEM(__pyx_t_7, 4, __pyx_float_82_3);
    __Pyx_INCREF(__pyx_float_36_8);
    __Pyx_GIVEREF(__pyx_float_36_8);
    PyList_SET_ITEM(__pyx_t_7, 5, __pyx_float_36_8);
    __pyx_t_1 = PyList_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_GIVEREF(__pyx_t_6);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_7);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
    __pyx_t_6 = 0;
    __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_tocs_rule); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_storage, __pyx_t_1) < 0)) __PYX_ERR(0, 5631, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5632: 
+5633:       for x in self.district_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5633, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5633, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5633, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_6))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5633, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5633, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5633, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5633, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_10(__pyx_t_6);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5633, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5634:         x.carryover_rights = {}
      __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5634, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_1) < 0) __PYX_ERR(0, 5634, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5635:         for y in self.contract_list:
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
        __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5635, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5635, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_7))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5635, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5635, __pyx_L1_error)
            #else
            __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5635, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_1);
            #endif
          }
        } else {
          __pyx_t_1 = __pyx_t_12(__pyx_t_7);
          if (unlikely(!__pyx_t_1)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5635, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_1);
        }
        __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_1);
        __pyx_t_1 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5636:           if y.type == 'right':
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5636, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5636, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__pyx_t_2) {
/* … */
          goto __pyx_L27;
        }
+5637:             x.carryover_rights[y.name] = y.carryover*x.rights[y.name]['carryover']
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_rights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_5);
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_13, __pyx_n_u_carryover); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __pyx_t_13 = PyNumber_Multiply(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_8);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_1, __pyx_t_13) < 0)) __PYX_ERR(0, 5637, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 5638:           else:
+5639:             x.carryover_rights[y.name] = 0.0
        /*else*/ {
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5639, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5639, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          if (unlikely(PyObject_SetItem(__pyx_t_13, __pyx_t_1, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5639, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        }
        __pyx_L27:;
+5640:       for x in self.private_list:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_private_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5640, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_7 = __pyx_t_6; __Pyx_INCREF(__pyx_t_7); __pyx_t_4 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5640, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_10 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5640, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5640, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5640, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5640, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_7, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5640, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_10(__pyx_t_7);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5640, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5641:         x.carryover_rights = {}
      __pyx_t_6 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5641, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_6) < 0) __PYX_ERR(0, 5641, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5642:         for xx in x.district_list:
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5642, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
        __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5642, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5642, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_1))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5642, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5642, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5642, __pyx_L1_error)
            #else
            __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5642, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_6);
            #endif
          }
        } else {
          __pyx_t_6 = __pyx_t_12(__pyx_t_1);
          if (unlikely(!__pyx_t_6)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5642, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_6);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_6);
        __pyx_t_6 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5643:           district_object = self.district_keys[xx]
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5643, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_xx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5643, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_13);
        __pyx_t_13 = 0;
+5644:           x.carryover_rights[xx] = {}
        __pyx_t_13 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5644, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5644, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_v_xx, __pyx_t_13) < 0)) __PYX_ERR(0, 5644, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+5645:           for y in self.contract_list:
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5645, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
          __pyx_t_6 = __pyx_t_13; __Pyx_INCREF(__pyx_t_6); __pyx_t_14 = 0;
          __pyx_t_15 = NULL;
        } else {
          __pyx_t_14 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5645, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_15 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5645, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        for (;;) {
          if (likely(!__pyx_t_15)) {
            if (likely(PyList_CheckExact(__pyx_t_6))) {
              if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5645, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5645, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            } else {
              if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5645, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_6, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5645, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            }
          } else {
            __pyx_t_13 = __pyx_t_15(__pyx_t_6);
            if (unlikely(!__pyx_t_13)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5645, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_13);
          }
          __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_13);
          __pyx_t_13 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5646:             if y.type == 'right':
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5646, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5646, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L34;
          }
+5647:               x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][wateryear]
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_16, __pyx_n_u_carryover); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = PyNumber_Multiply(__pyx_t_13, __pyx_t_5); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __pyx_t_13 = PyNumber_Multiply(__pyx_t_16, __pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_5, __pyx_t_13) < 0)) __PYX_ERR(0, 5647, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 5648:             else:
+5649:               x.carryover_rights[xx][y.name] = 0.0
          /*else*/ {
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5649, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_xx); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5649, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5649, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (unlikely(PyObject_SetItem(__pyx_t_5, __pyx_t_13, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5649, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __pyx_L34:;
+5650:       for x in self.city_list:
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_city_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5650, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
      __pyx_t_1 = __pyx_t_7; __Pyx_INCREF(__pyx_t_1); __pyx_t_4 = 0;
      __pyx_t_10 = NULL;
    } else {
      __pyx_t_4 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5650, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_10 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5650, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    for (;;) {
      if (likely(!__pyx_t_10)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5650, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5650, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        } else {
          if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_4); __Pyx_INCREF(__pyx_t_7); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5650, __pyx_L1_error)
          #else
          __pyx_t_7 = PySequence_ITEM(__pyx_t_1, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5650, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          #endif
        }
      } else {
        __pyx_t_7 = __pyx_t_10(__pyx_t_1);
        if (unlikely(!__pyx_t_7)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5650, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_7);
      }
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_7);
      __pyx_t_7 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5651:         x.carryover_rights = {}
      __pyx_t_7 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5651, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights, __pyx_t_7) < 0) __PYX_ERR(0, 5651, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5652:         for xx in x.district_list:
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_district_list); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (likely(PyList_CheckExact(__pyx_t_7)) || PyTuple_CheckExact(__pyx_t_7)) {
        __pyx_t_6 = __pyx_t_7; __Pyx_INCREF(__pyx_t_6); __pyx_t_11 = 0;
        __pyx_t_12 = NULL;
      } else {
        __pyx_t_11 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5652, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_12 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5652, __pyx_L1_error)
      }
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      for (;;) {
        if (likely(!__pyx_t_12)) {
          if (likely(PyList_CheckExact(__pyx_t_6))) {
            if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          } else {
            if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
            #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
            __pyx_t_7 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_11); __Pyx_INCREF(__pyx_t_7); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5652, __pyx_L1_error)
            #else
            __pyx_t_7 = PySequence_ITEM(__pyx_t_6, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5652, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_7);
            #endif
          }
        } else {
          __pyx_t_7 = __pyx_t_12(__pyx_t_6);
          if (unlikely(!__pyx_t_7)) {
            PyObject* exc_type = PyErr_Occurred();
            if (exc_type) {
              if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
              else __PYX_ERR(0, 5652, __pyx_L1_error)
            }
            break;
          }
          __Pyx_GOTREF(__pyx_t_7);
        }
        __Pyx_XDECREF_SET(__pyx_v_xx, __pyx_t_7);
        __pyx_t_7 = 0;
/* … */
      }
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5653:           district_object = self.district_keys[xx]
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_keys); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5653, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_7, __pyx_v_xx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5653, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_XDECREF_SET(__pyx_v_district_object, __pyx_t_13);
        __pyx_t_13 = 0;
+5654:           x.carryover_rights[xx] = {}
        __pyx_t_13 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5654, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5654, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_v_xx, __pyx_t_13) < 0)) __PYX_ERR(0, 5654, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+5655:           for y in self.contract_list:
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5655, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        if (likely(PyList_CheckExact(__pyx_t_13)) || PyTuple_CheckExact(__pyx_t_13)) {
          __pyx_t_7 = __pyx_t_13; __Pyx_INCREF(__pyx_t_7); __pyx_t_14 = 0;
          __pyx_t_15 = NULL;
        } else {
          __pyx_t_14 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5655, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_7);
          __pyx_t_15 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 5655, __pyx_L1_error)
        }
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        for (;;) {
          if (likely(!__pyx_t_15)) {
            if (likely(PyList_CheckExact(__pyx_t_7))) {
              if (__pyx_t_14 >= PyList_GET_SIZE(__pyx_t_7)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5655, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5655, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            } else {
              if (__pyx_t_14 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
              #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
              __pyx_t_13 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_14); __Pyx_INCREF(__pyx_t_13); __pyx_t_14++; if (unlikely(0 < 0)) __PYX_ERR(0, 5655, __pyx_L1_error)
              #else
              __pyx_t_13 = PySequence_ITEM(__pyx_t_7, __pyx_t_14); __pyx_t_14++; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5655, __pyx_L1_error)
              __Pyx_GOTREF(__pyx_t_13);
              #endif
            }
          } else {
            __pyx_t_13 = __pyx_t_15(__pyx_t_7);
            if (unlikely(!__pyx_t_13)) {
              PyObject* exc_type = PyErr_Occurred();
              if (exc_type) {
                if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
                else __PYX_ERR(0, 5655, __pyx_L1_error)
              }
              break;
            }
            __Pyx_GOTREF(__pyx_t_13);
          }
          __Pyx_DECREF_SET(__pyx_v_y, __pyx_t_13);
          __pyx_t_13 = 0;
/* … */
        }
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5656:             if y.type == 'right':
          __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_type); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5656, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_13);
          __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_right, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5656, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L41;
          }
+5657:               x.carryover_rights[xx][y.name] = y.carryover*district_object.rights[y.name]['carryover']*x.private_fraction[xx][wateryear]
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_carryover); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_district_object, __pyx_n_s_rights); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_5);
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_5, __pyx_t_16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_carryover); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_8 = PyNumber_Multiply(__pyx_t_13, __pyx_t_16); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_private_fraction); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_13 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_wateryear); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __pyx_t_13 = PyNumber_Multiply(__pyx_t_8, __pyx_t_16); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_16, __pyx_v_xx); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_8);
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __pyx_t_16 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            if (unlikely(PyObject_SetItem(__pyx_t_8, __pyx_t_16, __pyx_t_13) < 0)) __PYX_ERR(0, 5657, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
 5658:             else:
+5659:               x.carryover_rights[xx][y.name] = 0.0
          /*else*/ {
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_carryover_rights); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5659, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            __pyx_t_16 = __Pyx_PyObject_GetItem(__pyx_t_13, __pyx_v_xx); if (unlikely(!__pyx_t_16)) __PYX_ERR(0, 5659, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_16);
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
            __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_y, __pyx_n_s_name); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5659, __pyx_L1_error)
            __Pyx_GOTREF(__pyx_t_13);
            if (unlikely(PyObject_SetItem(__pyx_t_16, __pyx_t_13, __pyx_float_0_0) < 0)) __PYX_ERR(0, 5659, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_16); __pyx_t_16 = 0;
            __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
          }
          __pyx_L41:;
 5660: 
 5661: 
+5662:     if y == 2009 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2009, 0x7D9, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L43_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5662, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5662, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L43_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5663:       self.poso.initial_recharge = 420.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5663, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_initial_recharge, __pyx_float_420_0) < 0) __PYX_ERR(0, 5663, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5664:       self.poso.recovery = 0.6942
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5664, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_recovery, __pyx_float_0_6942) < 0) __PYX_ERR(0, 5664, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5665:       self.poso.tot_storage = 2.1
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_poso); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5665, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_tot_storage, __pyx_float_2_1) < 0) __PYX_ERR(0, 5665, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5666:       self.find_all_triggers()
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_6))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_6);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_6, function);
      }
    }
    __pyx_t_1 = (__pyx_t_7) ? __Pyx_PyObject_CallOneArg(__pyx_t_6, __pyx_t_7) : __Pyx_PyObject_CallNoArg(__pyx_t_6);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5666, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5667:       self.fkc.capacity["normal"] = self.fkc.capacity["normal_wy2010"]
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_normal_wy2010); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_fkc); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_capacity); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5667, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5668: 
 5669: 
+5670:     if y == 2010 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2010, 0x7DA, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5670, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L46_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5670, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5670, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L46_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5671:       self.irvineranch.initial_recharge = 300.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5671, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_initial_recharge, __pyx_float_300_0) < 0) __PYX_ERR(0, 5671, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5672:       self.irvineranch.recovery = 0.0479
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5672, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_recovery, __pyx_float_0_0479) < 0) __PYX_ERR(0, 5672, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5673:       self.irvineranch.tot_storage = 0.594
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_irvineranch); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5673, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_tot_storage, __pyx_float_0_594) < 0) __PYX_ERR(0, 5673, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5674: 
+5675:     if y == 1998 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1998, 0x7CE, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5675, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L49_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5675, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5675, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L49_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5676:       self.berrenda.project_contract['tableA'] =  0.032076
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5676, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_032076) < 0)) __PYX_ERR(0, 5676, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5677:       self.socal.project_contract['tableA'] = 0.63338264299
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_63338264299) < 0)) __PYX_ERR(0, 5677, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5678:     if y == 1999 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1999, 0x7CF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L52_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5678, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5678, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L52_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5679:       self.belridge.project_contract['tableA'] = 0.03636
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5679, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5679, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_03636) < 0)) __PYX_ERR(0, 5679, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5680:     if y == 2000 and dowy == 1:
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2000, 0x7D0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5680, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L55_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5680, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5680, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L55_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5681:       self.southbay.project_contract['tableA'] = 0.05177514792
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5681, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5681, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_05177514792) < 0)) __PYX_ERR(0, 5681, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5682:       self.belridge.project_contract['tableA'] = 0.03538
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5682, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_03538) < 0)) __PYX_ERR(0, 5682, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5683:       self.berrenda.project_contract['tableA'] =  0.03035
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5683, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_03035) < 0)) __PYX_ERR(0, 5683, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5684:       self.losthills.project_contract['tableA'] = 0.0293663708
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_losthills); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5684, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_0293663708) < 0)) __PYX_ERR(0, 5684, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5685:       self.wheeler.project_contract['tableA'] =  0.04858926015
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_wheeler); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5685, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5685, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_04858926015) < 0)) __PYX_ERR(0, 5685, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5686:       self.socal.project_contract['tableA'] = 0.64423076923
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5686, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_64423076923) < 0)) __PYX_ERR(0, 5686, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5687:     if y == 2001 and dowy == 1:
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2001, 0x7D1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L58_bool_binop_done;
  }
  __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5687, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5687, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L58_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5688:       self.southbay.project_contract['tableA'] = 0.05424063116
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5688, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_05424063116) < 0)) __PYX_ERR(0, 5688, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5689:       self.belridge.project_contract['tableA'] = 0.0305
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5689, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5689, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_0305) < 0)) __PYX_ERR(0, 5689, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5690:       self.berrenda.project_contract['tableA'] =  0.02837
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5690, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_02837) < 0)) __PYX_ERR(0, 5690, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5691:     if y == 2004 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2004, 0x7D4, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5691, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L61_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5691, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5691, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L61_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5692:       self.belridge.project_contract['tableA'] = 0.02995607
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_belridge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5692, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5692, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_02995607) < 0)) __PYX_ERR(0, 5692, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5693:       self.berrenda.project_contract['tableA'] =  0.02677
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_02677) < 0)) __PYX_ERR(0, 5693, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5694:       self.southbay.project_contract['tableA'] = 0.0548863
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_southbay); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5694, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_0548863) < 0)) __PYX_ERR(0, 5694, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5695:       self.westkern.project_contract['tableA'] = 0.00776587
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_westkern); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5695, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5695, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_00776587) < 0)) __PYX_ERR(0, 5695, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5696:     if y == 2010 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2010, 0x7DA, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L64_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5696, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5696, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L64_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5697:       self.berrenda.project_contract['tableA'] =  0.02282922
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_berrenda); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5697, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_float_0_02282922) < 0)) __PYX_ERR(0, 5697, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5698:       self.socal.project_contract['tableA'] = 0.648310
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_socal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5698, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_tableA, __pyx_float_0_648310) < 0)) __PYX_ERR(0, 5698, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5699: 
+5700:     if y == 2002 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2002, 0x7D2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L67_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5700, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5700, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_3;
  __pyx_L67_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5701:       self.kwbcanal.capacity["normal"] = [800.0, 800.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_0_0);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5701, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5701, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5702:       self.kwbcanal.capacity["reverse"] = [0.0, 440.0, 800.0, 800.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_440_0);
    __Pyx_GIVEREF(__pyx_float_440_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_440_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_800_0);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_capacity); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5702, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_reverse, __pyx_t_1) < 0)) __PYX_ERR(0, 5702, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5703:       self.kwbcanal.capacity["closed"] = [0.0, 0.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 3, __pyx_float_0_0);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_capacity); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5703, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_closed, __pyx_t_1) < 0)) __PYX_ERR(0, 5703, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5704:       self.kwbcanal.turnout["normal"] = [800.0, 800.0, 0.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_800_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5704, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_normal, __pyx_t_1) < 0)) __PYX_ERR(0, 5704, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5705:       self.kwbcanal.turnout["reverse"] = [0.0, 440.0, 800.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_440_0);
    __Pyx_GIVEREF(__pyx_float_440_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_440_0);
    __Pyx_INCREF(__pyx_float_800_0);
    __Pyx_GIVEREF(__pyx_float_800_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_800_0);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_turnout); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5705, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_6, __pyx_n_u_reverse, __pyx_t_1) < 0)) __PYX_ERR(0, 5705, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5706:       self.kwbcanal.turnout["closed"] = [0.0, 0.0, 0.0]
    __pyx_t_1 = PyList_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 0, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 1, __pyx_float_0_0);
    __Pyx_INCREF(__pyx_float_0_0);
    __Pyx_GIVEREF(__pyx_float_0_0);
    PyList_SET_ITEM(__pyx_t_1, 2, __pyx_float_0_0);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_turnout); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5706, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_closed, __pyx_t_1) < 0)) __PYX_ERR(0, 5706, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5707:       self.kwbcanal.flow_directions["recharge"]["caa"] = 'closed'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5707, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_caa, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5707, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5708:       self.kwbcanal.flow_directions["recharge"]["knc"] = 'closed'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_recharge); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5708, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_knc, __pyx_n_u_closed) < 0)) __PYX_ERR(0, 5708, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5709:       self.kwbcanal.flow_directions["recovery"]["caa"] = 'normal'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_recovery); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5709, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_caa, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5709, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5710:       self.kwbcanal.flow_directions["recovery"]["knc"] = 'normal'
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwbcanal); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_flow_directions); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_7, __pyx_n_u_recovery); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5710, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_knc, __pyx_n_u_normal) < 0)) __PYX_ERR(0, 5710, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5711:       #self.fkc.flow_directions["recharge"]["xvc"] = 'normal'
 5712: 
+5713:       self.kwb.initial_recharge = 1212.12
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5713, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_initial_recharge, __pyx_float_1212_12) < 0) __PYX_ERR(0, 5713, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5714:       self.kwb.recovery = 0.7863
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5714, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_recovery, __pyx_float_0_7863) < 0) __PYX_ERR(0, 5714, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5715:       self.kwb.tot_storage = 2.4
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kwb); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5715, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_tot_storage, __pyx_float_2_4) < 0) __PYX_ERR(0, 5715, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5716:       self.init_tot_recovery()
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_init_tot_recovery); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5716, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5717:       self.kerndelta.in_district_direct_recharge = 165.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5717, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_165_0) < 0) __PYX_ERR(0, 5717, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5718:       self.kerndelta.in_district_storage = 0.326
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kerndelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5718, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_0_326) < 0) __PYX_ERR(0, 5718, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5719:       self.buenavista.in_district_direct_recharge = 333.3
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5719, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_333_3) < 0) __PYX_ERR(0, 5719, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5720:       self.buenavista.in_district_storage = 0.66
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_buenavista); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5720, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_0_66) < 0) __PYX_ERR(0, 5720, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5721:       self.rosedale.in_district_direct_recharge = 606.1
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5721, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_direct_recharge, __pyx_float_606_1) < 0) __PYX_ERR(0, 5721, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5722:       self.rosedale.in_district_storage = 1.2
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_rosedale); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5722, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_in_district_storage, __pyx_float_1_2) < 0) __PYX_ERR(0, 5722, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5723: 
 5724: 
+5725:       self.find_all_triggers()
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_find_all_triggers); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_7))) {
      __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_7);
      if (likely(__pyx_t_6)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
        __Pyx_INCREF(__pyx_t_6);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_7, function);
      }
    }
    __pyx_t_1 = (__pyx_t_6) ? __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_6) : __Pyx_PyObject_CallNoArg(__pyx_t_7);
    __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5725, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5726: 
 5727:       ####Calculates the requests for SWP allocations in WY 1997-2000
 5728:       ###when less than full allocation was requested by MWD.  This is unlikely to 
 5729:       ###occur in the future
+5730:     self.swpdelta.total = 4056.0
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_total, __pyx_float_4056_0) < 0) __PYX_ERR(0, 5730, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5731:     if y == 1996:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1996, 0x7CC, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5731, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L69;
  }
+5732:       self.swpdelta.max_allocation = 2977.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5732, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_2977_0) < 0) __PYX_ERR(0, 5732, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5733:     elif y == 1997:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1997, 0x7CD, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5733, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5733, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L69;
  }
+5734:       self.swpdelta.max_allocation = 3191.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5734, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_3191_0) < 0) __PYX_ERR(0, 5734, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5735:     elif y == 1998:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1998, 0x7CE, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5735, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5735, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L69;
  }
+5736:       self.swpdelta.max_allocation = 3214.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5736, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_3214_0) < 0) __PYX_ERR(0, 5736, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5737:     elif y == 1999:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_1999, 0x7CF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5737, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5737, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L69;
  }
+5738:       self.swpdelta.max_allocation = 3617.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_3617_0) < 0) __PYX_ERR(0, 5738, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5739:     else:
+5740:       self.swpdelta.max_allocation = 4056.0
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation, __pyx_float_4056_0) < 0) __PYX_ERR(0, 5740, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L69:;
 5741: 
+5742:     request_empty = self.swpdelta.total - self.swpdelta.max_allocation
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_max_allocation); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Subtract(__pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5742, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_v_request_empty = __pyx_t_1;
  __pyx_t_1 = 0;
+5743:     for x in self.district_list:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
    __pyx_t_6 = __pyx_t_1; __Pyx_INCREF(__pyx_t_6); __pyx_t_4 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_6 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5743, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_10 = Py_TYPE(__pyx_t_6)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5743, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_6))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyList_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5743, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5743, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_6)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_6, __pyx_t_4); __Pyx_INCREF(__pyx_t_1); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5743, __pyx_L1_error)
        #else
        __pyx_t_1 = PySequence_ITEM(__pyx_t_6, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5743, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        #endif
      }
    } else {
      __pyx_t_1 = __pyx_t_10(__pyx_t_6);
      if (unlikely(!__pyx_t_1)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5743, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_1);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
    __pyx_t_1 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5744:       contractor_toggle = 0
    __pyx_v_contractor_toggle = 0;
+5745:       for contract in x.contract_list:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5745, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (likely(PyList_CheckExact(__pyx_t_1)) || PyTuple_CheckExact(__pyx_t_1)) {
      __pyx_t_7 = __pyx_t_1; __Pyx_INCREF(__pyx_t_7); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_7 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5745, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_12 = Py_TYPE(__pyx_t_7)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5745, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_7))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyList_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5745, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        } else {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_7)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_1 = PyTuple_GET_ITEM(__pyx_t_7, __pyx_t_11); __Pyx_INCREF(__pyx_t_1); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5745, __pyx_L1_error)
          #else
          __pyx_t_1 = PySequence_ITEM(__pyx_t_7, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5745, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          #endif
        }
      } else {
        __pyx_t_1 = __pyx_t_12(__pyx_t_7);
        if (unlikely(!__pyx_t_1)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5745, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_1);
      }
      __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_1);
      __pyx_t_1 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+5746:         if contract == 'tableA':
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5746, __pyx_L1_error)
      if (__pyx_t_2) {
/* … */
      }
+5747:           contractor_toggle = 1
        __pyx_v_contractor_toggle = 1;
+5748:       if contractor_toggle == 1:
    __pyx_t_2 = ((__pyx_v_contractor_toggle == 1) != 0);
    if (__pyx_t_2) {
/* … */
    }
+5749:         if x.key == "SOC":
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5749, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_7, __pyx_n_u_SOC, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5749, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L76;
      }
+5750:           x.table_a_request = x.initial_table_a*self.swpdelta.total - request_empty
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_Multiply(__pyx_t_7, __pyx_t_13); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_Subtract(__pyx_t_1, __pyx_v_request_empty); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_13) < 0) __PYX_ERR(0, 5750, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+5751:         elif x.key == "SOB":
      __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5751, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_13);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_13, __pyx_n_u_SOB, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5751, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L76;
      }
+5752:           x.table_a_request = x.initial_table_a*self.swpdelta.total
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_total); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_1 = PyNumber_Multiply(__pyx_t_13, __pyx_t_7); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5752, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_1) < 0) __PYX_ERR(0, 5752, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5753:         elif x.key == "CCA":
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_key); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5753, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_t_1, __pyx_n_u_CCA, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5753, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L76;
      }
+5754:           x.table_a_request = x.initial_table_a*self.swpdelta.total
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_total); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __pyx_t_7 = PyNumber_Multiply(__pyx_t_1, __pyx_t_13); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5754, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_7) < 0) __PYX_ERR(0, 5754, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
 5755:         else:
+5756:           x.table_a_request = x.initial_table_a*self.swpdelta.total
      /*else*/ {
        __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_initial_table_a); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5756, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5756, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_13, __pyx_n_s_total); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5756, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        __pyx_t_13 = PyNumber_Multiply(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5756, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_13);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        if (__Pyx_PyObject_SetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request, __pyx_t_13) < 0) __PYX_ERR(0, 5756, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
      }
      __pyx_L76:;
+5757:     self.swpdelta.total = self.swpdelta.max_allocation
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_max_allocation); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5757, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (__Pyx_PyObject_SetAttrStr(__pyx_t_6, __pyx_n_s_total, __pyx_t_13) < 0) __PYX_ERR(0, 5757, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+5758:     for x in self.district_list:
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_district_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5758, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
    __pyx_t_13 = __pyx_t_6; __Pyx_INCREF(__pyx_t_13); __pyx_t_4 = 0;
    __pyx_t_10 = NULL;
  } else {
    __pyx_t_4 = -1; __pyx_t_13 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 5758, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_10 = Py_TYPE(__pyx_t_13)->tp_iternext; if (unlikely(!__pyx_t_10)) __PYX_ERR(0, 5758, __pyx_L1_error)
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  for (;;) {
    if (likely(!__pyx_t_10)) {
      if (likely(PyList_CheckExact(__pyx_t_13))) {
        if (__pyx_t_4 >= PyList_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyList_GET_ITEM(__pyx_t_13, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5758, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      } else {
        if (__pyx_t_4 >= PyTuple_GET_SIZE(__pyx_t_13)) break;
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_13, __pyx_t_4); __Pyx_INCREF(__pyx_t_6); __pyx_t_4++; if (unlikely(0 < 0)) __PYX_ERR(0, 5758, __pyx_L1_error)
        #else
        __pyx_t_6 = PySequence_ITEM(__pyx_t_13, __pyx_t_4); __pyx_t_4++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5758, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        #endif
      }
    } else {
      __pyx_t_6 = __pyx_t_10(__pyx_t_13);
      if (unlikely(!__pyx_t_6)) {
        PyObject* exc_type = PyErr_Occurred();
        if (exc_type) {
          if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
          else __PYX_ERR(0, 5758, __pyx_L1_error)
        }
        break;
      }
      __Pyx_GOTREF(__pyx_t_6);
    }
    __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_6);
    __pyx_t_6 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
+5759:       contractor_toggle = 0
    __pyx_v_contractor_toggle = 0;
+5760:       for contract in x.contract_list:
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_contract_list); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5760, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    if (likely(PyList_CheckExact(__pyx_t_6)) || PyTuple_CheckExact(__pyx_t_6)) {
      __pyx_t_1 = __pyx_t_6; __Pyx_INCREF(__pyx_t_1); __pyx_t_11 = 0;
      __pyx_t_12 = NULL;
    } else {
      __pyx_t_11 = -1; __pyx_t_1 = PyObject_GetIter(__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5760, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_12 = Py_TYPE(__pyx_t_1)->tp_iternext; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 5760, __pyx_L1_error)
    }
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    for (;;) {
      if (likely(!__pyx_t_12)) {
        if (likely(PyList_CheckExact(__pyx_t_1))) {
          if (__pyx_t_11 >= PyList_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyList_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5760, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5760, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        } else {
          if (__pyx_t_11 >= PyTuple_GET_SIZE(__pyx_t_1)) break;
          #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
          __pyx_t_6 = PyTuple_GET_ITEM(__pyx_t_1, __pyx_t_11); __Pyx_INCREF(__pyx_t_6); __pyx_t_11++; if (unlikely(0 < 0)) __PYX_ERR(0, 5760, __pyx_L1_error)
          #else
          __pyx_t_6 = PySequence_ITEM(__pyx_t_1, __pyx_t_11); __pyx_t_11++; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5760, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          #endif
        }
      } else {
        __pyx_t_6 = __pyx_t_12(__pyx_t_1);
        if (unlikely(!__pyx_t_6)) {
          PyObject* exc_type = PyErr_Occurred();
          if (exc_type) {
            if (likely(__Pyx_PyErr_GivenExceptionMatches(exc_type, PyExc_StopIteration))) PyErr_Clear();
            else __PYX_ERR(0, 5760, __pyx_L1_error)
          }
          break;
        }
        __Pyx_GOTREF(__pyx_t_6);
      }
      __Pyx_XDECREF_SET(__pyx_v_contract, __pyx_t_6);
      __pyx_t_6 = 0;
/* … */
    }
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5761:         if contract == 'tableA':
      __pyx_t_2 = (__Pyx_PyUnicode_Equals(__pyx_v_contract, __pyx_n_u_tableA, Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5761, __pyx_L1_error)
      if (__pyx_t_2) {
/* … */
      }
+5762:           contractor_toggle = 1
        __pyx_v_contractor_toggle = 1;
+5763:       if contractor_toggle == 1:
    __pyx_t_2 = ((__pyx_v_contractor_toggle == 1) != 0);
    if (__pyx_t_2) {
/* … */
    }
+5764:         x.project_contract['tableA'] = x.table_a_request/self.swpdelta.total
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_table_a_request); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_swpdelta); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_total); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_6 = __Pyx_PyNumber_Divide(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_x, __pyx_n_s_project_contract); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      if (unlikely(PyObject_SetItem(__pyx_t_7, __pyx_n_u_tableA, __pyx_t_6) < 0)) __PYX_ERR(0, 5764, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
 5765: 
+5766:   def update_regulations_north(self,t,dowy,y):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_105update_regulations_north(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_105update_regulations_north = {"update_regulations_north", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_105update_regulations_north, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_105update_regulations_north(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  CYTHON_UNUSED PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_y = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_regulations_north (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_y,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 4, 4, 1); __PYX_ERR(0, 5766, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 4, 4, 2); __PYX_ERR(0, 5766, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_y)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 4, 4, 3); __PYX_ERR(0, 5766, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "update_regulations_north") < 0)) __PYX_ERR(0, 5766, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_dowy = values[2];
    __pyx_v_y = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("update_regulations_north", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5766, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_regulations_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_104update_regulations_north(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_dowy, __pyx_v_y);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_104update_regulations_north(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, CYTHON_UNUSED PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_y) {
  PyObject *__pyx_v_x = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__79)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("update_regulations_north", 0);
  __Pyx_TraceCall("update_regulations_north", __pyx_f[0], 5766, 0, __PYX_ERR(0, 5766, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_r = Py_None; __Pyx_INCREF(Py_None);
  goto __pyx_L0;
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.update_regulations_north", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_x);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__141 = PyTuple_Pack(5, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_dowy, __pyx_n_s_y, __pyx_n_s_x); if (unlikely(!__pyx_tuple__141)) __PYX_ERR(0, 5766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__141);
  __Pyx_GIVEREF(__pyx_tuple__141);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_105update_regulations_north, 0, __pyx_n_s_Model_update_regulations_north, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__79)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5766, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_update_regulations_north, __pyx_t_2) < 0) __PYX_ERR(0, 5766, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__79 = (PyObject*)__Pyx_PyCode_New(4, 0, 5, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__141, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_update_regulations_north, 5766, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__79)) __PYX_ERR(0, 5766, __pyx_L1_error)
 5767: 
 5768: 	##Yuba River Accalfews_src, started in Jan of 2006 (repaces minimum flow requirements)
+5769:     if y >= 2006:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_y, __pyx_int_2006, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5769, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5769, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
  }
+5770:       self.yuba.env_min_flow = self.yuba.env_min_flow_ya
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_env_min_flow_ya); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5770, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_env_min_flow, __pyx_t_3) < 0) __PYX_ERR(0, 5770, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5771:       self.yuba.temp_releases = self.yuba.temp_releases_ya
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_temp_releases_ya); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5771, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_temp_releases, __pyx_t_3) < 0) __PYX_ERR(0, 5771, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5772: 
+5773:     if y == 2008 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2008, 0x7D8, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L5_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5773, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5773, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L5_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5774:       for x in range(318, 334):
    for (__pyx_t_5 = 0x13E; __pyx_t_5 < 0x14E; __pyx_t_5+=1) {
      __pyx_t_1 = __Pyx_PyInt_From_long(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5774, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_1);
      __pyx_t_1 = 0;
+5775:         self.delta.x2constraint['W'][x] = 77.0 - 3.0*(x-318)/16
      __pyx_t_1 = __Pyx_PyInt_SubtractObjC(__pyx_v_x, __pyx_int_318, 0x13E, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = PyNumber_Multiply(__pyx_float_3_0, __pyx_t_1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyInt_TrueDivideObjC(__pyx_t_3, __pyx_int_16, 16, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyFloat_SubtractCObj(__pyx_float_77_0, __pyx_t_1, 77.0, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_6, __pyx_n_u_W); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_v_x, __pyx_t_3) < 0)) __PYX_ERR(0, 5775, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5776:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5776, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5776, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5776, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
 5777: 
+5778:       for x in range(334,366):
    for (__pyx_t_5 = 0x14E; __pyx_t_5 < 0x16E; __pyx_t_5+=1) {
      __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5778, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
      __pyx_t_3 = 0;
+5779:         self.delta.x2constraint['W'][x] = 74.0
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5779, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5779, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5779, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5779, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5780:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5780, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5780, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
+5781:       for x in range(0, 30):
    for (__pyx_t_5 = 0; __pyx_t_5 < 30; __pyx_t_5+=1) {
      __pyx_t_3 = __Pyx_PyInt_From_long(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5781, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_x, __pyx_t_3);
      __pyx_t_3 = 0;
+5782:         self.delta.x2constraint['W'][x] = 74.0
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_W); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5782, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_74_0) < 0)) __PYX_ERR(0, 5782, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5783:         self.delta.x2constraint['AN'][x] = 81.0
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_x2constraint); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_AN); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5783, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_v_x, __pyx_float_81_0) < 0)) __PYX_ERR(0, 5783, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    }
 5784: 
 5785:     #tucp orders during the drought can be found here:
 5786: 	#https://www.waterboards.ca.gov/waterrights/water_issues/programs/drought/tucp/index.html
+5787:     if y == 2014 and dowy == 123:
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L14_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_123, 0x7B, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5787, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5787, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L14_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L13;
  }
+5788:       self.delta.min_outflow['C'][1] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5788, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 1, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5788, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5789:       self.delta.min_outflow['C'][2] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5789, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5789, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5789, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 2, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5789, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5790:       self.delta.min_outflow['C'][3] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5790, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 3, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5790, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5791:       self.delta.min_outflow['C'][4] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5791, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5791, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5791, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 4, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5791, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5792:       self.delta.min_outflow['C'][5] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5792, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 5, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5792, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5793:       self.delta.min_outflow['C'][6] = 3000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5793, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 6, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5793, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 5794: 
+5795:       self.delta.rio_vista_min['C'][8] = 2000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5795, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 8, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5795, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5796:       self.delta.rio_vista_min['C'][9] = 2000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5796, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 9, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5796, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5797:       self.delta.rio_vista_min['C'][10] = 2000
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5797, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 10, __pyx_int_2000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5797, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5798:     elif y == 2014 and dowy == 228:
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5798, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L16_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_228, 0xE4, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5798, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5798, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L16_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
  __pyx_L13:;
+5799:       self.delta.san_joaquin_min_flow['C'][2] = 500
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_san_joaquin_min_flow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5799, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 2, __pyx_int_500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5799, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5800:     if y == 2014 and dowy == 1:
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2014, 0x7DE, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5800, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L19_bool_binop_done;
  }
  __pyx_t_3 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5800, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5800, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L19_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L18;
  }
+5801:       self.delta.san_joaquin_min_flow['C'][2] = 500
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_san_joaquin_min_flow); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5801, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 2, __pyx_int_500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5801, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5802:       self.delta.rio_vista_min['C'][8] = 2500
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 8, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5803:       self.delta.rio_vista_min['C'][9] = 2500
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5803, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 9, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5803, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5804:       self.delta.rio_vista_min['C'][10] = 2500
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_1, __pyx_n_u_C); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5804, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_3, 10, __pyx_int_2500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5804, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5805:       self.delta.new_vamp_rule['C'] = 710.0
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_new_vamp_rule); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5805, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_1, __pyx_n_u_C, __pyx_float_710_0) < 0)) __PYX_ERR(0, 5805, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5806:     elif y == 2015 and dowy == 228:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L21_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_228, 0xE4, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5806, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5806, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L21_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L18;
  }
+5807:       self.delta.san_joaquin_min_flow['C'][2] = 300
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_san_joaquin_min_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5807, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_int_300, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5807, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5808:     elif y == 2015 and dowy == 242:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L23_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_242, 0xF2, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5808, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5808, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L23_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
  __pyx_L18:;
+5809:       self.delta.san_joaquin_min_flow['C'][2] = 200
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_san_joaquin_min_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5809, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_int_200, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5809, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5810: 
 5811:       #expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self.shasta.downstream,self.oroville.downstream,self.yuba.downstream,self.folsom.downstream, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases)
 5812:       #expected_outflow_req = self.delta.min_outflow
 5813:       #expected_outflow_req['EC'] = expected_outflow_req['C']
 5814:       #inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville]
 5815:       #for x in inflow_list:
 5816:         #x.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
 5817: 
+5818:     if y == 2015 and dowy == 1:
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_y, __pyx_int_2015, 0x7DF, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L26_bool_binop_done;
  }
  __pyx_t_1 = __Pyx_PyInt_EqObjC(__pyx_v_dowy, __pyx_int_1, 1, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5818, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 5818, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_2 = __pyx_t_4;
  __pyx_L26_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+5819:       self.delta.min_outflow['C'][1] = 7100
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5819, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 1, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5819, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5820:       self.delta.min_outflow['C'][2] = 7100
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5820, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5820, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5821:       self.delta.min_outflow['C'][3] = 7100
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5821, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 3, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5821, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5822:       self.delta.min_outflow['C'][4] = 7100
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5822, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 4, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5822, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5823:       self.delta.min_outflow['C'][5] = 7100
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5823, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 5, __pyx_int_7100, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5823, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5824:       self.delta.min_outflow['C'][6] = 4000
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_min_outflow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5824, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 6, __pyx_int_4000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5824, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5825:       self.delta.san_joaquin_min_flow['C'][2] = 1140
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_san_joaquin_min_flow); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5825, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 2, __pyx_int_1140, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5825, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5826:       self.delta.rio_vista_min['C'][8] = 3000
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5826, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5826, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 8, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5826, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5827:       self.delta.rio_vista_min['C'][9] = 3000
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5827, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 9, __pyx_int_3000, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5827, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5828:       self.delta.rio_vista_min['C'][10] = 3500
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_rio_vista_min); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_C); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5828, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_t_1, 10, __pyx_int_3500, long, 1, __Pyx_PyInt_From_long, 0, 0, 1) < 0)) __PYX_ERR(0, 5828, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5829:       self.delta.new_vamp_rule['C'] = 1500.0
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5829, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_new_vamp_rule); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5829, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(PyObject_SetItem(__pyx_t_3, __pyx_n_u_C, __pyx_float_1500_0) < 0)) __PYX_ERR(0, 5829, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 5830: 
 5831:       #expected_outflow_req, expected_depletion = self.delta.calc_expected_delta_outflow(self.shasta.downstream,self.oroville.downstream,self.yuba.downstream,self.folsom.downstream, self.shasta.temp_releases, self.oroville.temp_releases, self.yuba.temp_releases, self.folsom.temp_releases)
 5832:       #expected_outflow_req = self.delta.min_outflow
 5833:       #expected_outflow_req['EC'] = expected_outflow_req['C']
 5834:       #inflow_list = [self.shasta, self.folsom, self.yuba, self.oroville]
 5835:       #for x in inflow_list:
 5836:         #x.calc_expected_min_release(self, expected_outflow_req, expected_depletion, 0)
 5837: 
 5838: 
+5839:   def proj_gains(self,t, dowy, m, year_index):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_107proj_gains(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_107proj_gains = {"proj_gains", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_107proj_gains, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_107proj_gains(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_v_m = 0;
  PyObject *__pyx_v_year_index = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("proj_gains (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_dowy,&__pyx_n_s_m,&__pyx_n_s_year_index,0};
    PyObject* values[5] = {0,0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("proj_gains", 1, 5, 5, 1); __PYX_ERR(0, 5839, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("proj_gains", 1, 5, 5, 2); __PYX_ERR(0, 5839, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_m)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("proj_gains", 1, 5, 5, 3); __PYX_ERR(0, 5839, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (likely((values[4] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_year_index)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("proj_gains", 1, 5, 5, 4); __PYX_ERR(0, 5839, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "proj_gains") < 0)) __PYX_ERR(0, 5839, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 5) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
      values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_dowy = values[2];
    __pyx_v_m = values[3];
    __pyx_v_year_index = values[4];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("proj_gains", 1, 5, 5, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5839, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.proj_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_106proj_gains(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_dowy, __pyx_v_m, __pyx_v_year_index);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_106proj_gains(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy, PyObject *__pyx_v_m, PyObject *__pyx_v_year_index) {
  PyObject *__pyx_v_tot_sac_fnf = NULL;
  PyObject *__pyx_v_tot_sj_fnf = NULL;
  PyObject *__pyx_v_proj_surplus = NULL;
  PyObject *__pyx_v_proj_omr = NULL;
  PyObject *__pyx_v_reservoir = NULL;
  long __pyx_v_x;
  PyObject *__pyx_v_daysmonth = NULL;
  PyObject *__pyx_v_expected_pumping = NULL;
  PyObject *__pyx_v_max_pumping = NULL;
  long __pyx_v_monthloop;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__80)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("proj_gains", 0);
  __Pyx_TraceCall("proj_gains", __pyx_f[0], 5839, 0, __PYX_ERR(0, 5839, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.proj_gains", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_tot_sac_fnf);
  __Pyx_XDECREF(__pyx_v_tot_sj_fnf);
  __Pyx_XDECREF(__pyx_v_proj_surplus);
  __Pyx_XDECREF(__pyx_v_proj_omr);
  __Pyx_XDECREF(__pyx_v_reservoir);
  __Pyx_XDECREF(__pyx_v_daysmonth);
  __Pyx_XDECREF(__pyx_v_expected_pumping);
  __Pyx_XDECREF(__pyx_v_max_pumping);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__142 = PyTuple_Pack(15, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_dowy, __pyx_n_s_m, __pyx_n_s_year_index, __pyx_n_s_tot_sac_fnf, __pyx_n_s_tot_sj_fnf, __pyx_n_s_proj_surplus, __pyx_n_s_proj_omr, __pyx_n_s_reservoir, __pyx_n_s_x, __pyx_n_s_daysmonth, __pyx_n_s_expected_pumping, __pyx_n_s_max_pumping, __pyx_n_s_monthloop); if (unlikely(!__pyx_tuple__142)) __PYX_ERR(0, 5839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__142);
  __Pyx_GIVEREF(__pyx_tuple__142);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_107proj_gains, 0, __pyx_n_s_Model_proj_gains, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__80)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_proj_gains, __pyx_t_2) < 0) __PYX_ERR(0, 5839, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__80 = (PyObject*)__Pyx_PyCode_New(5, 0, 15, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__142, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_proj_gains, 5839, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__80)) __PYX_ERR(0, 5839, __pyx_L1_error)
+5840:     tot_sac_fnf = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_tot_sac_fnf = __pyx_float_0_0;
+5841:     tot_sj_fnf = 0.0
  __Pyx_INCREF(__pyx_float_0_0);
  __pyx_v_tot_sj_fnf = __pyx_float_0_0;
+5842:     proj_surplus = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_2)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_1 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_2, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_v_proj_surplus = __pyx_t_1;
  __pyx_t_1 = 0;
+5843:     proj_omr = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
    }
  }
  __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_proj_omr = __pyx_t_1;
  __pyx_t_1 = 0;
+5844:     for reservoir in [self.shasta, self.oroville, self.yuba, self.folsom]:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = PyTuple_New(4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_5, 2, __pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_5, 3, __pyx_t_4);
  __pyx_t_1 = 0;
  __pyx_t_2 = 0;
  __pyx_t_3 = 0;
  __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_t_5; __Pyx_INCREF(__pyx_t_4); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  for (;;) {
    if (__pyx_t_6 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_5 = PyTuple_GET_ITEM(__pyx_t_4, __pyx_t_6); __Pyx_INCREF(__pyx_t_5); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5844, __pyx_L1_error)
    #else
    __pyx_t_5 = PySequence_ITEM(__pyx_t_4, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5844, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_5);
    __pyx_t_5 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+5845:       if t < 30:
    __pyx_t_5 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5845, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5845, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L5;
    }
+5846:         tot_sac_fnf += np.sum(reservoir.fnf[0:t])*30.0/(t+1)
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fnf); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_3, 0, 0, NULL, &__pyx_v_t, NULL, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_float_30_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_InPlaceAdd(__pyx_v_tot_sac_fnf, __pyx_t_1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5846, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_sac_fnf, __pyx_t_5);
      __pyx_t_5 = 0;
 5847:       else:
+5848:         tot_sac_fnf += np.sum(reservoir.fnf[(t-30):t])
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fnf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_3 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_8 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_t_3, &__pyx_v_t, NULL, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, __pyx_t_8) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_8);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tot_sac_fnf, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5848, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_sac_fnf, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L5:;
+5849:     for reservoir in [self.newmelones, self.donpedro, self.exchequer, self.millerton]:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_3 = PyTuple_New(4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5849, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_3, 2, __pyx_t_5);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_3, 3, __pyx_t_8);
  __pyx_t_4 = 0;
  __pyx_t_2 = 0;
  __pyx_t_5 = 0;
  __pyx_t_8 = 0;
  __pyx_t_8 = __pyx_t_3; __Pyx_INCREF(__pyx_t_8); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  for (;;) {
    if (__pyx_t_6 >= 4) break;
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    __pyx_t_3 = PyTuple_GET_ITEM(__pyx_t_8, __pyx_t_6); __Pyx_INCREF(__pyx_t_3); __pyx_t_6++; if (unlikely(0 < 0)) __PYX_ERR(0, 5849, __pyx_L1_error)
    #else
    __pyx_t_3 = PySequence_ITEM(__pyx_t_8, __pyx_t_6); __pyx_t_6++; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5849, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    #endif
    __Pyx_XDECREF_SET(__pyx_v_reservoir, __pyx_t_3);
    __pyx_t_3 = 0;
/* … */
  }
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+5850:       if t < 30:
    __pyx_t_3 = PyObject_RichCompare(__pyx_v_t, __pyx_int_30, Py_LT); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5850, __pyx_L1_error)
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5850, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L8;
    }
+5851:         tot_sj_fnf += np.sum(reservoir.fnf[0:t])*30.0/(t+1)
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fnf); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_5, 0, 0, NULL, &__pyx_v_t, NULL, 1, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_float_30_0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyInt_AddObjC(__pyx_v_t, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_4 = __Pyx_PyNumber_Divide(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_InPlaceAdd(__pyx_v_tot_sj_fnf, __pyx_t_4); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5851, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_sj_fnf, __pyx_t_3);
      __pyx_t_3 = 0;
 5852:       else:
+5853:         tot_sj_fnf += np.sum(reservoir.fnf[(t-30):t])
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_sum); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_reservoir, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_5 = __Pyx_PyInt_SubtractObjC(__pyx_v_t, __pyx_int_30, 30, 0, 0); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 0, &__pyx_t_5, &__pyx_v_t, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_2, function);
        }
      }
      __pyx_t_3 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_5, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_1);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_InPlaceAdd(__pyx_v_tot_sj_fnf, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5853, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF_SET(__pyx_v_tot_sj_fnf, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L8:;
 5854: 
+5855:     for x in range(0, 12):
  for (__pyx_t_9 = 0; __pyx_t_9 < 12; __pyx_t_9+=1) {
    __pyx_v_x = __pyx_t_9;
+5856:       if x >= m:
    __pyx_t_8 = __Pyx_PyInt_From_long(__pyx_v_x); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5856, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_v_m, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5856, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L11;
    }
+5857:         daysmonth = self.days_in_month[year_index][x]
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_year_index); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5857, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_2);
      __pyx_t_2 = 0;
 5858:       else:
+5859:         daysmonth = self.days_in_month[year_index + 1][x]
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_t_8); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5859, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_8);
      __pyx_t_8 = 0;
    }
    __pyx_L11:;
+5860:       proj_surplus[x] = max(self.delta_gains_regression['slope'][dowy][x]*min(tot_sac_fnf,4.0) + self.delta_gains_regression['intercept'][dowy][x], 0.0)
    __pyx_t_10 = 0.0;
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_slope); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_11 = 4.0;
    __Pyx_INCREF(__pyx_v_tot_sac_fnf);
    __pyx_t_8 = __pyx_v_tot_sac_fnf;
    __pyx_t_1 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_1, __pyx_t_8, Py_LT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {
      __pyx_t_5 = PyFloat_FromDouble(__pyx_t_11); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_8);
      __pyx_t_2 = __pyx_t_8;
    }
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta_gains_regression); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intercept); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_8 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __pyx_t_5 = PyObject_RichCompare(__pyx_t_8, __pyx_t_2, Py_GT); __Pyx_XGOTREF(__pyx_t_5); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_5); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    if (__pyx_t_7) {
      __pyx_t_5 = PyFloat_FromDouble(__pyx_t_10); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5860, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_3 = __pyx_t_5;
      __pyx_t_5 = 0;
    } else {
      __Pyx_INCREF(__pyx_t_2);
      __pyx_t_3 = __pyx_t_2;
    }
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __pyx_t_3;
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_v_proj_surplus, __pyx_v_x, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5860, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5861:       proj_omr[x] = (self.delta.omr_regression['slope'][dowy][x]*tot_sj_fnf + self.delta.omr_regression['intercept'][dowy][x] + 5000.0*cfs_tafd*daysmonth)/0.94
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_omr_regression); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_slope); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_v_tot_sj_fnf); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_omr_regression); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_intercept); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_dowy); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_x, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_5 = PyNumber_Add(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyNumber_Multiply(__pyx_float_5000_0, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Add(__pyx_t_5, __pyx_t_2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyFloat_TrueDivideObjC(__pyx_t_3, __pyx_float_0_94, 0.94, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(__Pyx_SetItemInt(__pyx_v_proj_omr, __pyx_v_x, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5861, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
+5862:     expected_pumping = {}
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5862, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_expected_pumping = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
+5863:     expected_pumping['cvp'] = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5863, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 5863, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5864:     expected_pumping['swp'] = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5864, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_expected_pumping, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 5864, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5865:     max_pumping = {}
  __pyx_t_2 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5865, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_max_pumping = ((PyObject*)__pyx_t_2);
  __pyx_t_2 = 0;
+5866:     max_pumping['cvp'] = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_zeros); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_5, function);
    }
  }
  __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5866, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_max_pumping, __pyx_n_u_cvp, __pyx_t_2) < 0)) __PYX_ERR(0, 5866, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5867:     max_pumping['swp'] = np.zeros(12)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_zeros); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_3);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_3, function);
    }
  }
  __pyx_t_2 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_5, __pyx_int_12) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_int_12);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5867, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (unlikely(PyDict_SetItem(__pyx_v_max_pumping, __pyx_n_u_swp, __pyx_t_2) < 0)) __PYX_ERR(0, 5867, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5868: 
 5869: 
+5870:     for monthloop in range(0,12):
  for (__pyx_t_9 = 0; __pyx_t_9 < 12; __pyx_t_9+=1) {
    __pyx_v_monthloop = __pyx_t_9;
+5871:       if monthloop >= m:
    __pyx_t_2 = __Pyx_PyInt_From_long(__pyx_v_monthloop); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5871, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = PyObject_RichCompare(__pyx_t_2, __pyx_v_m, Py_GE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5871, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5871, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L14;
    }
+5872:         daysmonth = self.days_in_month[year_index][monthloop]
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5872, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_v_year_index); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5872, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_2, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5872, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_3);
      __pyx_t_3 = 0;
 5873:       else:
+5874:         daysmonth = self.days_in_month[year_index + 1][monthloop]
    /*else*/ {
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_days_in_month); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5874, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_year_index, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5874, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetItem(__pyx_t_3, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5874, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5874, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_XDECREF_SET(__pyx_v_daysmonth, __pyx_t_2);
      __pyx_t_2 = 0;
    }
    __pyx_L14:;
+5875:       if proj_surplus[monthloop]*0.55 > self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth:
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_float_0_55); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyObject_RichCompare(__pyx_t_5, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5875, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L15;
    }
+5876:         expected_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_cvp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_monthloop, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5876, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5877:         expected_pumping['swp'][monthloop] = min(self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth, proj_surplus[monthloop] - self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth)
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_cvp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = PyNumber_Subtract(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_swp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_3, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_7) {
        __Pyx_INCREF(__pyx_t_2);
        __pyx_t_5 = __pyx_t_2;
      } else {
        __Pyx_INCREF(__pyx_t_3);
        __pyx_t_5 = __pyx_t_3;
      }
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __pyx_t_5;
      __Pyx_INCREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5877, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5878:       else:
+5879:         expected_pumping['cvp'][monthloop] = proj_surplus[monthloop]*0.55
    /*else*/ {
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_float_0_55); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5879, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5879, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5880:         expected_pumping['swp'][monthloop] = proj_surplus[monthloop]*0.45
      __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_proj_surplus, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_5, __pyx_float_0_45); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_expected_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5880, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5880, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L15:;
 5881: 
+5882:       if monthloop < 6 and year_index + self.starting_year > self.delta.omr_rule_start:
    __pyx_t_12 = ((__pyx_v_monthloop < 6) != 0);
    if (__pyx_t_12) {
    } else {
      __pyx_t_7 = __pyx_t_12;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_starting_year); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_5 = PyNumber_Add(__pyx_v_year_index, __pyx_t_2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_omr_rule_start); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyObject_RichCompare(__pyx_t_5, __pyx_t_3, Py_GT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 5882, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_7 = __pyx_t_12;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_7) {
/* … */
      goto __pyx_L16;
    }
+5883:         if proj_omr[monthloop]*0.5 > self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth:
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_float_0_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_t_5); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_8, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_8 = PyObject_RichCompare(__pyx_t_3, __pyx_t_5, Py_GT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5883, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_7) {
/* … */
        goto __pyx_L19;
      }
+5884:           max_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_cvp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_monthloop, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5884, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
+5885:           max_pumping['swp'][monthloop] = min(self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth, proj_omr[monthloop] - self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth)
        __pyx_t_5 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_cvp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_8, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = PyNumber_Subtract(__pyx_t_5, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_swp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_8, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __pyx_t_8 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_8, __pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_5 = PyNumber_Multiply(__pyx_t_3, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_t_5, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __pyx_t_7 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_7 < 0)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        if (__pyx_t_7) {
          __Pyx_INCREF(__pyx_t_2);
          __pyx_t_3 = __pyx_t_2;
        } else {
          __Pyx_INCREF(__pyx_t_5);
          __pyx_t_3 = __pyx_t_5;
        }
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __pyx_t_3;
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5885, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5886:         else:
+5887:           max_pumping['cvp'][monthloop] = proj_omr[monthloop]*0.5
      /*else*/ {
        __pyx_t_2 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5887, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __pyx_t_3 = PyNumber_Multiply(__pyx_t_2, __pyx_float_0_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5887, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5887, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5887, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5888:           max_pumping['swp'][monthloop] = proj_omr[monthloop]*0.5
        __pyx_t_3 = __Pyx_GetItemInt(__pyx_v_proj_omr, __pyx_v_monthloop, long, 1, __Pyx_PyInt_From_long, 0, 1, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5888, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_float_0_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5888, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __pyx_t_3 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5888, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (unlikely(__Pyx_SetItemInt(__pyx_t_3, __pyx_v_monthloop, __pyx_t_2, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5888, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __pyx_L19:;
 5889: 
 5890:       else:
+5891:         max_pumping['cvp'][monthloop] = self.delta.pump_max['cvp']['intake_limit'][0]*cfs_tafd*daysmonth
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_cvp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_2, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_GetItemInt(__pyx_t_3, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_t_3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = PyNumber_Multiply(__pyx_t_5, __pyx_v_daysmonth); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_cvp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_5, __pyx_v_monthloop, __pyx_t_3, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5891, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
+5892:         max_pumping['swp'][monthloop] = self.delta.pump_max['swp']['intake_limit'][0]*cfs_tafd*daysmonth
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_pump_max); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_PyObject_Dict_GetItem(__pyx_t_5, __pyx_n_u_swp); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Dict_GetItem(__pyx_t_3, __pyx_n_u_intake_limit); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = __Pyx_GetItemInt(__pyx_t_5, 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_cfs_tafd); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __pyx_t_2 = PyNumber_Multiply(__pyx_t_3, __pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = PyNumber_Multiply(__pyx_t_2, __pyx_v_daysmonth); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __Pyx_PyDict_GetItem(__pyx_v_max_pumping, __pyx_n_u_swp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (unlikely(__Pyx_SetItemInt(__pyx_t_2, __pyx_v_monthloop, __pyx_t_5, long, 1, __Pyx_PyInt_From_long, 0, 1, 1) < 0)) __PYX_ERR(0, 5892, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    }
    __pyx_L16:;
  }
 5893: 
+5894:     return expected_pumping, max_pumping
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 5894, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(__pyx_v_expected_pumping);
  __Pyx_GIVEREF(__pyx_v_expected_pumping);
  PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_v_expected_pumping);
  __Pyx_INCREF(__pyx_v_max_pumping);
  __Pyx_GIVEREF(__pyx_v_max_pumping);
  PyTuple_SET_ITEM(__pyx_t_5, 1, __pyx_v_max_pumping);
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
 5895: 
 5896: 
+5897:   def find_wyt(self,index):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_109find_wyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_109find_wyt = {"find_wyt", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_109find_wyt, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_109find_wyt(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_index = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_wyt (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_index,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_index)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("find_wyt", 1, 2, 2, 1); __PYX_ERR(0, 5897, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "find_wyt") < 0)) __PYX_ERR(0, 5897, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_self = values[0];
    __pyx_v_index = values[1];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("find_wyt", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5897, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_wyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_108find_wyt(__pyx_self, __pyx_v_self, __pyx_v_index);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_108find_wyt(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_index) {
  PyObject *__pyx_v_wyt = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__81)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("find_wyt", 0);
  __Pyx_TraceCall("find_wyt", __pyx_f[0], 5897, 0, __PYX_ERR(0, 5897, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.find_wyt", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_wyt);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__143 = PyTuple_Pack(3, __pyx_n_s_self, __pyx_n_s_index, __pyx_n_s_wyt); if (unlikely(!__pyx_tuple__143)) __PYX_ERR(0, 5897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__143);
  __Pyx_GIVEREF(__pyx_tuple__143);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_109find_wyt, 0, __pyx_n_s_Model_find_wyt, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__81)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5897, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_find_wyt, __pyx_t_2) < 0) __PYX_ERR(0, 5897, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_codeobj__81 = (PyObject*)__Pyx_PyCode_New(2, 0, 3, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__143, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_calfews_src_cy_model_cy_pyx, __pyx_n_s_find_wyt, 5897, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__81)) __PYX_ERR(0, 5897, __pyx_L1_error)
+5898:     if index <= 2.1:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_2_1, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5898, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5898, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+5899:       wyt = "C"
    __Pyx_INCREF(__pyx_n_u_C);
    __pyx_v_wyt = __pyx_n_u_C;
+5900:       self.isabella.forecastWYT = "C"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5900, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5900, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5901:       self.success.forecastWYT = "C"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5901, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5901, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5902:       self.kaweah.forecastWYT = "C"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5902, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5902, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5903:       self.millerton.forecastWYT = "C"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5903, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5903, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5904:     elif index <= 2.5:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_2_5, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5904, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5904, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+5905:       wyt = "D"
    __Pyx_INCREF(__pyx_n_u_D);
    __pyx_v_wyt = __pyx_n_u_D;
+5906:       self.isabella.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5906, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5906, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5907:       self.success.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5907, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5907, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5908:       self.kaweah.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5908, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5908, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5909:       self.millerton.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5909, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5909, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5910:     elif index <= 3.1:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_3_1, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5910, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5910, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+5911:       wyt = "BN"
    __Pyx_INCREF(__pyx_n_u_BN);
    __pyx_v_wyt = __pyx_n_u_BN;
+5912:       self.isabella.forecastWYT = "BN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5912, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5912, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5913:       self.success.forecastWYT = "BN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5913, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5913, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5914:       self.kaweah.forecastWYT = "BN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5914, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5914, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5915:       self.millerton.forecastWYT = "BN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5915, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5915, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5916:     elif index <= 3.8:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_index, __pyx_float_3_8, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5916, __pyx_L1_error)
  __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 5916, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+5917:       wyt = "AN"
    __Pyx_INCREF(__pyx_n_u_AN);
    __pyx_v_wyt = __pyx_n_u_AN;
+5918:       self.isabella.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5918, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5918, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5919:       self.success.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5919, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5919, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5920:       self.kaweah.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5920, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5920, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5921:       self.millerton.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5921, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5922:     else:
+5923:       wyt = "W"
  /*else*/ {
    __Pyx_INCREF(__pyx_n_u_W);
    __pyx_v_wyt = __pyx_n_u_W;
+5924:       self.isabella.forecastWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_isabella); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5924, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5924, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5925:       self.success.forecastWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_success); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5925, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5925, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5926:       self.kaweah.forecastWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_kaweah); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5926, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5927:       self.millerton.forecastWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_millerton); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5927, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
+5928:     return wyt
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_wyt);
  __pyx_r = __pyx_v_wyt;
  goto __pyx_L0;
 5929: 
+5930:   def calc_wytypes(self,t,dowy):
/* Python wrapper */
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_111calc_wytypes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_14calfews_src_cy_8model_cy_5Model_111calc_wytypes = {"calc_wytypes", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_14calfews_src_cy_8model_cy_5Model_111calc_wytypes, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_14calfews_src_cy_8model_cy_5Model_111calc_wytypes(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_self = 0;
  PyObject *__pyx_v_t = 0;
  PyObject *__pyx_v_dowy = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("calc_wytypes (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_self,&__pyx_n_s_t,&__pyx_n_s_dowy,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_self)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_t)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("calc_wytypes", 1, 3, 3, 1); __PYX_ERR(0, 5930, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_dowy)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("calc_wytypes", 1, 3, 3, 2); __PYX_ERR(0, 5930, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "calc_wytypes") < 0)) __PYX_ERR(0, 5930, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_self = values[0];
    __pyx_v_t = values[1];
    __pyx_v_dowy = values[2];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("calc_wytypes", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 5930, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.calc_wytypes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_14calfews_src_cy_8model_cy_5Model_110calc_wytypes(__pyx_self, __pyx_v_self, __pyx_v_t, __pyx_v_dowy);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_14calfews_src_cy_8model_cy_5Model_110calc_wytypes(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_self, PyObject *__pyx_v_t, PyObject *__pyx_v_dowy) {
  PyObject *__pyx_v_eos_date = NULL;
  PyObject *__pyx_v_yubaIndex = NULL;
  PyObject *__pyx_v_folsomIndex = NULL;
  PyObject *__pyx_v_eof_storage = NULL;
  PyObject *__pyx_v_newmelonesIndex = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_TraceDeclarations
  __Pyx_TraceFrameInit(__pyx_codeobj__82)
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("calc_wytypes", 0);
  __Pyx_TraceCall("calc_wytypes", __pyx_f[0], 5930, 0, __PYX_ERR(0, 5930, __pyx_L1_error));
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_AddTraceback("calfews_src_cy.model_cy.Model.calc_wytypes", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_eos_date);
  __Pyx_XDECREF(__pyx_v_yubaIndex);
  __Pyx_XDECREF(__pyx_v_folsomIndex);
  __Pyx_XDECREF(__pyx_v_eof_storage);
  __Pyx_XDECREF(__pyx_v_newmelonesIndex);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_TraceReturn(__pyx_r, 0);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__144 = PyTuple_Pack(8, __pyx_n_s_self, __pyx_n_s_t, __pyx_n_s_dowy, __pyx_n_s_eos_date, __pyx_n_s_yubaIndex, __pyx_n_s_folsomIndex, __pyx_n_s_eof_storage, __pyx_n_s_newmelonesIndex); if (unlikely(!__pyx_tuple__144)) __PYX_ERR(0, 5930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__144);
  __Pyx_GIVEREF(__pyx_tuple__144);
/* … */
  __pyx_t_2 = __Pyx_CyFunction_New(&__pyx_mdef_14calfews_src_cy_8model_cy_5Model_111calc_wytypes, 0, __pyx_n_s_Model_calc_wytypes, NULL, __pyx_n_s_calfews_src_cy_model_cy, __pyx_d, ((PyObject *)__pyx_codeobj__82)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5930, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  if (__Pyx_SetNameInClass(__pyx_t_1, __pyx_n_s_calc_wytypes, __pyx_t_2) < 0) __PYX_ERR(0, 5930, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5931: 
 5932: ####NOTE:  Full natural flow data is in MAF, inflow data is in TAF  
 5933: ##Index for Shasta Min Flows
 5934: ############################
+5935:     if self.delta.forecastSRI[t] <= 5.4:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5935, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5935, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+5936:       self.shasta.forecastWYT = "C"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5936, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5936, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5937:       self.delta.forecastSCWYT = "C"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5937, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastSCWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5937, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5938:     elif self.delta.forecastSRI[t] <= 6.6:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_6_6, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5938, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+5939:       self.shasta.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5939, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5939, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5940:       self.delta.forecastSCWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5940, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5940, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5941:     elif self.delta.forecastSRI[t] <= 7.8:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_1, __pyx_float_7_8, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+5942:       self.shasta.forecastWYT = "BN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5942, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5942, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5943:       self.delta.forecastSCWYT = "BN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5943, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastSCWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5943, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5944:     elif self.delta.forecastSRI[t] <= 9.2:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5944, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyObject_RichCompare(__pyx_t_2, __pyx_float_9_2, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5944, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L3;
  }
+5945:       self.shasta.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5945, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5945, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5946:       self.delta.forecastSCWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5946, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5946, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5947:     else:
+5948:       self.shasta.forecastWYT = "W"
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_shasta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5948, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5948, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5949:       self.delta.forecastSCWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5949, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastSCWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5949, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L3:;
 5950: 
 5951: ##Index for Oroville Min Flows
 5952: ############################	  
+5953:     if self.oroville.snowflood_fnf[t] < 0.55*1.942:
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyFloat_FromDouble((0.55 * 1.942)); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_t_2, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5953, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L4;
  }
+5954:       self.oroville.forecastWYT = "D"
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5954, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5954, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
 5955:     else:
+5956:       self.oroville.forecastWYT = "W"
  /*else*/ {
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5956, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5956, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  }
  __pyx_L4:;
 5957: 
+5958:     if self.delta.forecastSRI[t] <= 5.4:
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5958, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5958, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5959:       self.oroville.forecastWYT = "C"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_oroville); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5959, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5959, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5960: 
 5961: ##Index for Yuba Min Flows
 5962: ############################	
+5963:     eos_date = t - dowy
  __pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5963, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_v_eos_date = __pyx_t_2;
  __pyx_t_2 = 0;
+5964:     if eos_date < 0:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_eos_date, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5964, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5964, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
  }
+5965:       eos_date = 0
    __Pyx_INCREF(__pyx_int_0);
    __Pyx_DECREF_SET(__pyx_v_eos_date, __pyx_int_0);
 5966: 
+5967:     yubaIndex = (self.yuba.rainflood_fnf[t] + self.yuba.snowflood_fnf[t])*1000 + self.yuba.S[eos_date] - 234.0
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_rainflood_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyNumber_Add(__pyx_t_2, __pyx_t_4); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = PyNumber_Multiply(__pyx_t_1, __pyx_int_1000); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_eos_date); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyNumber_Add(__pyx_t_4, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyFloat_SubtractObjC(__pyx_t_2, __pyx_float_234_0, 234.0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5967, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_yubaIndex = __pyx_t_1;
  __pyx_t_1 = 0;
+5968:     if yubaIndex >= 1400:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_1400, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5968, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5968, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L7;
  }
+5969:       self.yuba.forecastWYT = "W"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5969, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5969, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5970:     elif yubaIndex >= 1040:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_1040, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5970, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5970, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L7;
  }
+5971:       self.yuba.forecastWYT = "AN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5971, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5971, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5972:     elif yubaIndex >= 920:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_920, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5972, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5972, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L7;
  }
+5973:       self.yuba.forecastWYT = "BN"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5973, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5974:     elif yubaIndex >= 820:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_820, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5974, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5974, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L7;
  }
+5975:       self.yuba.forecastWYT = "D"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5975, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+5976:     elif yubaIndex >= 693:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_yubaIndex, __pyx_int_693, Py_GE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5976, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5976, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L7;
  }
+5977:       self.yuba.forecastWYT = "C"
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5977, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5977, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 5978:     else:
+5979:       self.yuba.forecastWYT = "EC"
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_yuba); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5979, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_EC) < 0) __PYX_ERR(0, 5979, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  }
  __pyx_L7:;
 5980: 
 5981: ##Index for Folsom Min Flows
 5982: ############################
 5983: ##Folsom has the most ridiculous operating rules, and combines a bunch of different 'indicies' throughout the year to determine min flows	
+5984:     if dowy < 91:
  __pyx_t_1 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_91, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5984, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5984, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L8;
  }
+5985:       folsomIndex = self.folsom.S[eos_date] + (361.701 - self.folsom.fci[eos_date])
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_eos_date); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fci); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_eos_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyFloat_SubtractCObj(__pyx_float_361_701, __pyx_t_2, 361.701, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_4); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5985, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_v_folsomIndex = __pyx_t_2;
    __pyx_t_2 = 0;
+5986:       if folsomIndex >= 848:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_848, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5986, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5986, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L9;
    }
+5987:         self.folsom.forecastWYT = "W"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5987, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 5987, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5988:       elif folsomIndex >= 746:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5988, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5988, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L9;
    }
+5989:         self.folsom.forecastWYT = "AN"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5989, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 5989, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5990:       elif folsomIndex >= 600:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5990, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5990, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L9;
    }
+5991:         self.folsom.forecastWYT = "BN"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5991, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 5991, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+5992:       elif folsomIndex >= 300:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_300, Py_GE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5992, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5992, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L9;
    }
+5993:         self.folsom.forecastWYT = "D"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5993, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 5993, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 5994:       else:
+5995:         self.folsom.forecastWYT = "C"
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5995, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5995, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L9:;
+5996:     elif dowy < 150:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_150, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5996, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 5996, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L8;
  }
+5997:       folsomIndex = self.folsom.S[eos_date] + (361.701 - self.folsom.fci[eos_date])
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_S); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_eos_date); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fci); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_eos_date); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyFloat_SubtractCObj(__pyx_float_361_701, __pyx_t_4, 361.701, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Add(__pyx_t_2, __pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5997, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_folsomIndex = __pyx_t_4;
    __pyx_t_4 = 0;
+5998:       if self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 600:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L11_bool_binop_done;
    }
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 5998, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L11_bool_binop_done:;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L10;
    }
+5999:         self.folsom.forecastWYT = "C"
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 5999, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 5999, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6000:       elif self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 746:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L13_bool_binop_done;
    }
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6000, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L13_bool_binop_done:;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L10;
    }
+6001:         self.folsom.forecastWYT = "D"
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6001, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6001, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6002:       elif self.delta.forecastSRI[t] <= 5.4 and folsomIndex < 848:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_5_4, Py_LE); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L15_bool_binop_done;
    }
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_848, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6002, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L15_bool_binop_done:;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L10;
    }
+6003:         self.folsom.forecastWYT = "AN"
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6003, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6003, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
+6004:       elif self.delta.forecastSRI[t] < 7.8 and folsomIndex < 600:
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_1, __pyx_float_7_8, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_4 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_600, Py_LT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6004, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L10;
    }
+6005:         self.folsom.forecastWYT = "D"
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6005, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_4, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6005, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
+6006:       elif self.delta.forecastSRI[t] < 7.8 and folsomIndex < 746:
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_forecastSRI); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetItem(__pyx_t_1, __pyx_v_t); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyObject_RichCompare(__pyx_t_4, __pyx_float_7_8, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (__pyx_t_5) {
    } else {
      __pyx_t_3 = __pyx_t_5;
      goto __pyx_L19_bool_binop_done;
    }
    __pyx_t_1 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_746, Py_LT); __Pyx_XGOTREF(__pyx_t_1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_1); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 6006, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_3 = __pyx_t_5;
    __pyx_L19_bool_binop_done:;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L10;
    }
+6007:         self.folsom.forecastWYT = "BN"
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6007, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 6007, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 6008:       else:
+6009:         self.folsom.forecastWYT = "W"
    /*else*/ {
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6009, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_1, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 6009, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    }
    __pyx_L10:;
 6010:     else:
+6011:       folsomIndex = (self.folsom.snowflood_fnf[t] - sum(self.folsom.fnf[(t-dowy+181):(t-dowy+211)]) + sum(self.folsom.fnf[(t-dowy+304):(t-dowy+364)]))*1000
  /*else*/ {
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_4, __pyx_v_t); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_fnf); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_181, 0xB5, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_4, __pyx_int_211, 0xD3, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_GetSlice(__pyx_t_2, 0, 0, &__pyx_t_6, &__pyx_t_7, NULL, 0, 0, 1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_4); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = PyNumber_Subtract(__pyx_t_1, __pyx_t_7); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_fnf); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_t_7, __pyx_int_304, 0x130, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_t_7, __pyx_int_364, 0x16C, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetSlice(__pyx_t_1, 0, 0, &__pyx_t_6, &__pyx_t_2, NULL, 0, 0, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_7); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Multiply(__pyx_t_7, __pyx_int_1000); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6011, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_v_folsomIndex = __pyx_t_2;
    __pyx_t_2 = 0;
+6012:       if folsomIndex < 250:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_250, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6012, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6012, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L21;
    }
+6013:         self.folsom.forecastWYT = "C"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6013, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 6013, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6014:       elif folsomIndex < 375:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_375, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6014, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6014, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L21;
    }
+6015:         self.folsom.forecastWYT = "D"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6015, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6015, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6016:       elif folsomIndex < 460:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_460, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6016, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6016, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L21;
    }
+6017:         self.folsom.forecastWYT = "BN"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6017, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 6017, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6018:       elif folsomIndex < 550:
    __pyx_t_2 = PyObject_RichCompare(__pyx_v_folsomIndex, __pyx_int_550, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6018, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6018, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    if (__pyx_t_3) {
/* … */
      goto __pyx_L21;
    }
+6019:         self.folsom.forecastWYT = "AN"
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6019, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6019, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 6020:       else:
+6021:         self.folsom.forecastWYT = "W"
    /*else*/ {
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_folsom); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6021, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 6021, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    }
    __pyx_L21:;
  }
  __pyx_L8:;
 6022: 
 6023: ##Index for New Melones Min Flows
 6024: ############################
+6025:     if dowy <= 150:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_dowy, __pyx_int_150, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6025, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6025, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L22;
  }
+6026:       eof_storage = t - dowy - 215
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyInt_SubtractObjC(__pyx_t_2, __pyx_int_215, 0xD7, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6026, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_v_eof_storage = __pyx_t_7;
    __pyx_t_7 = 0;
+6027:       if eof_storage < 0:
    __pyx_t_7 = PyObject_RichCompare(__pyx_v_eof_storage, __pyx_int_0, Py_LT); __Pyx_XGOTREF(__pyx_t_7); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_7); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6027, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    if (__pyx_t_3) {
/* … */
    }
+6028:         eof_storage == 0
      __pyx_t_7 = __Pyx_PyInt_EqObjC(__pyx_v_eof_storage, __pyx_int_0, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6028, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
+6029:       newmelonesIndex = self.newmelones.S[eof_storage] + sum(self.newmelones.fnf[(eof_storage+1):(t-dowy)])*1000
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_7, __pyx_n_s_S); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __pyx_t_7 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_eof_storage); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyInt_AddObjC(__pyx_v_eof_storage, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 0, &__pyx_t_2, &__pyx_t_6, NULL, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = PyNumber_Multiply(__pyx_t_6, __pyx_int_1000); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_Add(__pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6029, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_v_newmelonesIndex = __pyx_t_6;
    __pyx_t_6 = 0;
 6030:     else:
+6031:       eof_storage = t - dowy + 149
  /*else*/ {
    __pyx_t_6 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = __Pyx_PyInt_AddObjC(__pyx_t_6, __pyx_int_149, 0x95, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6031, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_v_eof_storage = __pyx_t_1;
    __pyx_t_1 = 0;
+6032:       newmelonesIndex = self.newmelones.S[eof_storage] + (sum(self.newmelones.fnf[(eof_storage+1):(t-dowy+181)]) + self.newmelones.snowflood_fnf[t] + sum(self.newmelones.fnf[(t-dowy+304):(t-dowy+365)]))*1000
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_S); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_eof_storage); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_fnf); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyInt_AddObjC(__pyx_v_eof_storage, __pyx_int_1, 1, 0, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_181, 0xB5, 0, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_7, 0, 0, &__pyx_t_6, &__pyx_t_4, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_6, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = PyNumber_Add(__pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_fnf); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_304, 0x130, 0, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Subtract(__pyx_v_t, __pyx_v_dowy); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_8 = __Pyx_PyInt_AddObjC(__pyx_t_2, __pyx_int_365, 0x16D, 0, 0); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetSlice(__pyx_t_4, 0, 0, &__pyx_t_7, &__pyx_t_8, NULL, 0, 0, 1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = __Pyx_PyObject_CallOneArg(__pyx_builtin_sum, __pyx_t_2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_6, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_t_8 = PyNumber_Multiply(__pyx_t_2, __pyx_int_1000); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyNumber_Add(__pyx_t_1, __pyx_t_8); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6032, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
    __pyx_v_newmelonesIndex = __pyx_t_2;
    __pyx_t_2 = 0;
  }
  __pyx_L22:;
 6033: 
+6034:     if newmelonesIndex < 1400:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_1400, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6034, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6034, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L24;
  }
+6035:       self.newmelones.forecastWYT = "C"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6035, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 6035, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6036:     elif newmelonesIndex < 2000:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_2000, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6036, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6036, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L24;
  }
+6037:       self.newmelones.forecastWYT = "D"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6037, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6037, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6038:     elif newmelonesIndex < 2500:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_2500, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6038, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6038, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L24;
  }
+6039:       self.newmelones.forecastWYT = "BN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6039, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 6039, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6040:     elif newmelonesIndex < 3000:
  __pyx_t_2 = PyObject_RichCompare(__pyx_v_newmelonesIndex, __pyx_int_3000, Py_LT); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6040, __pyx_L1_error)
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6040, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L24;
  }
+6041:       self.newmelones.forecastWYT = "AN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6041, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6041, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 6042:     else:
+6043:       self.newmelones.forecastWYT = "W"
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_newmelones); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6043, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 6043, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L24:;
 6044: 
 6045: ##Index for Don Pedro Min Flows
 6046: ############################
+6047:     if self.delta.forecastSJI[t] <= 2.1:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6047, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_float_2_1, Py_LE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6047, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L25;
  }
+6048:       self.donpedro.forecastWYT = "C"
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6048, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 6048, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+6049:       self.delta.forecastSJWYT = "C"
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6049, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastSJWYT, __pyx_n_u_C) < 0) __PYX_ERR(0, 6049, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+6050:     elif self.delta.forecastSJI[t] <= 2.5:
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6050, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_float_2_5, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6050, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6050, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L25;
  }
+6051:       self.donpedro.forecastWYT = "D"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6051, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6051, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6052:       self.delta.forecastSJWYT = "D"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6052, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastSJWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6052, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6053:     elif self.delta.forecastSJI[t] <= 3.1:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6053, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_float_3_1, Py_LE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6053, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6053, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L25;
  }
+6054:       self.donpedro.forecastWYT = "BN"
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6054, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 6054, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+6055:       self.delta.forecastSJWYT = "BN"
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6055, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastSJWYT, __pyx_n_u_BN) < 0) __PYX_ERR(0, 6055, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
+6056:     elif self.delta.forecastSJI[t] <= 3.8:
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_forecastSJI); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_GetItem(__pyx_t_2, __pyx_v_t); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6056, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyObject_RichCompare(__pyx_t_8, __pyx_float_3_8, Py_LE); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6056, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6056, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L25;
  }
+6057:       self.donpedro.forecastWYT = "AN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6057, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6057, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6058:       self.delta.forecastSJWYT = "AN"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6058, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastSJWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6058, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
 6059:     else:
+6060:       self.donpedro.forecastWYT = "W"
  /*else*/ {
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_donpedro); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6060, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 6060, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
+6061:       self.delta.forecastSJWYT = "W"
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_delta); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6061, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_2, __pyx_n_s_forecastSJWYT, __pyx_n_u_W) < 0) __PYX_ERR(0, 6061, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  }
  __pyx_L25:;
 6062: 
 6063: 
 6064: ##Index for Exchequer Min Flows
 6065: ############################	  
+6066:     if self.exchequer.snowflood_fnf[t] < .45:
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_snowflood_fnf); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_GetItem(__pyx_t_8, __pyx_v_t); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 6066, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyObject_RichCompare(__pyx_t_2, __pyx_float__45, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6066, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 6066, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (__pyx_t_3) {
/* … */
    goto __pyx_L26;
  }
+6067:       self.exchequer.forecastWYT = "D"
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6067, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastWYT, __pyx_n_u_D) < 0) __PYX_ERR(0, 6067, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
 6068:     else:
+6069:       self.exchequer.forecastWYT = "AN"
  /*else*/ {
    __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_v_self, __pyx_n_s_exchequer); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 6069, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_8);
    if (__Pyx_PyObject_SetAttrStr(__pyx_t_8, __pyx_n_s_forecastWYT, __pyx_n_u_AN) < 0) __PYX_ERR(0, 6069, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  }
  __pyx_L26:;
 6070: 
+6071:     return newmelonesIndex
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(__pyx_v_newmelonesIndex);
  __pyx_r = __pyx_v_newmelonesIndex;
  goto __pyx_L0;
 6072: 
 6073: